Indikátor načítavania
SecureLoadingView a .secureLoadingOverlay sú voliteľné komponenty knižnice zobrazujúce animovaný indikátor načítavania počas spracovania platby. Po naviazaní na ComgateSecureSession sa overlay zobrazuje a skrýva automaticky v závislosti od stavu platby.
Komponent je voliteľný — platba prebehne korektne aj bez neho. Slúži výhradne na vizuálnu spätnú väzbu pre používateľa.
Štruktúra
Knižnica ponúka dve varianty indikátora načítavania:
SecureLoadingView— inline view, ktorý možno priamo umiestniť do hierarchie SwiftUI (napr. uprostred obrazovky)..secureLoadingOverlay(...)— view modifier, ktorý zobrazí indikátor ako plávajúci panel nad celou obrazovkou so stmaveným pozadím.
Indikátor sa skladá z dvoch vizuálnych prvkov:
- Animovaný spinner — kruhový spinner s plynule otáčajúcim sa oblúkom nad statickou dráhou
- Textový popisok — voliteľný text zobrazený pod spinnerom; predvolený text sa automaticky odvodzuje z jazyka session
SecureLoadingView
Inline indikátor pre vlastné umiestnenie:
import SwiftUI
import ComgateSDK
VStack {
Spacer()
SecureLoadingView(text: "Spracovávam platbu…")
Spacer()
}
Inicializátor
public init(text: String? = nil, style: LoadingStyle = .indicator)
| Parameter | Typ | Popis |
|---|---|---|
text | String? | Voliteľný text pod spinnerom. nil skryje popisok. |
style | LoadingStyle | Štýlová štruktúra. Predvolene: .indicator. |
SecureLoadingOverlay (modifier)
SecureLoadingOverlay je view modifier, ktorý sa aplikuje na nadradený view a zobrazí cez neho plávajúci indikátor. Knižnica poskytuje dve varianty:
Manuálne ovládanie
struct ContentView: View {
@State private var isLoading = false
var body: some View {
ZStack { /* ... */ }
.secureLoadingOverlay(
isVisible: isLoading,
text: "Spracovávam platbu…"
)
}
}
| Parameter | Typ | Popis |
|---|---|---|
isVisible | Bool | Zobrazí/skryje overlay. |
text | String? | Voliteľný text. |
style | LoadingStyle | Štýlová štruktúra. Predvolene: .overlay. |
Automatická väzba na session
Odporúčaná varianta — overlay sa zobrazuje a skrýva automaticky podľa session.isProcessingPayment:
struct ContentView: View {
@ObservedObject var session: ComgateSecureSession
var body: some View {
ZStack { /* ... */ }
.secureLoadingOverlay(session: session)
}
}
| Parameter | Typ | Popis |
|---|---|---|
session | ComgateSecureSession | Session, ktorej isProcessingPayment overlay sleduje. |
text | String? | Voliteľný text. Ak nil, použije sa session.translation.loadingProcessingText. |
style | LoadingStyle | Štýlová štruktúra. Predvolene: .overlay. |
isLoadingEnabled | Bool | Ak false, overlay sa nezobrazí ani počas spracovania. Predvolene: true. |
Pri použití auto-bound varianty sa overlay zobrazí, len čo sa začne spracovanie platby (session.processPayment(...) alebo session.processApplePayPayment(...)), a skryje sa po prijatí terminálneho výsledku.
Ak chcete automatické správanie dočasne zakázať, odovzdajte isLoadingEnabled: false. Manuálne zobrazenie cez secureLoadingOverlay(isVisible:) zostáva nezávislé.
LoadingStyle
Štylizácia prebieha štruktúrou LoadingStyle.
Vlastnosti
| Vlastnosť | Typ | Predvolene | Popis |
|---|---|---|---|
spinnerColor | Color | #4287F5 | Farba otáčajúceho sa oblúka. |
trackColor | Color | #E0E0E0 | Farba statickej dráhy spinnera. |
strokeWidth | CGFloat | 4 | Hrúbka oblúka aj dráhy v bodoch. |
spinnerSize | CGFloat | 48 | Priemer spinnera v bodoch. |
textColor | Color | #666666 | Farba textu popisku. |
textSize | CGFloat | 14 | Veľkosť textu popisku v bodoch. |
textGap | CGFloat | 8 | Medzera medzi spinnerom a popiskom v bodoch. |
textFontName | String? | nil | Názov vlastného fontu. |
backgroundColor | Color | .white | Farba pozadia karty (overlay panelu). |
cornerRadius | CGFloat | 12 | Zaoblenie rohov karty v bodoch. |
paddingHorizontal | CGFloat | 16 | Horizontálne vnútorné odsadenie karty. |
paddingVertical | CGFloat | 20 | Vertikálne vnútorné odsadenie karty. |
dimAmount | CGFloat | 0.0 | Priehľadnosť stmaveného pozadia (0–1). |
Presety
| Preset | Popis |
|---|---|
LoadingStyle.indicator | Pre inline použitie (SecureLoadingView). Predvolené. |
LoadingStyle.overlay | Pre overlay variantu. Väčší padding, zaoblenie rohov 16. |
Príklad
let style = LoadingStyle(
spinnerColor: Color(red: 0.10, green: 0.47, blue: 0.91),
trackColor: Color(red: 0.85, green: 0.92, blue: 1.00),
strokeWidth: 4,
spinnerSize: 52,
backgroundColor: .white,
cornerRadius: 16,
paddingHorizontal: 28,
paddingVertical: 28,
dimAmount: 0.5
)
ContentView()
.secureLoadingOverlay(session: session, style: style)
Preklad textového popisku
Predvolený text pod spinnerom v auto-bound variante je automaticky odvodený z jazyka zvolenej platobnej session cez Translation.loadingProcessingText. Pre vlastný text odovzdajte parameter text:
ContentView()
.secureLoadingOverlay(
session: session,
text: "Spracovávame vašu platbu, počkajte prosím…"
)