Skip to main content

Indikátor načítavania

SecureLoadingView.secureLoadingOverlayvoliteľ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.

Tip

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)
ParameterTypPopis
textString?Voliteľný text pod spinnerom. nil skryje popisok.
styleLoadingStyleŠ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…"
)
}
}
ParameterTypPopis
isVisibleBoolZobrazí/skryje overlay.
textString?Voliteľný text.
styleLoadingStyleŠ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)
}
}
ParameterTypPopis
sessionComgateSecureSessionSession, ktorej isProcessingPayment overlay sleduje.
textString?Voliteľný text. Ak nil, použije sa session.translation.loadingProcessingText.
styleLoadingStyleŠtýlová štruktúra. Predvolene: .overlay.
isLoadingEnabledBoolAk 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.

Informácie

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ťTypPredvolenePopis
spinnerColorColor#4287F5Farba otáčajúceho sa oblúka.
trackColorColor#E0E0E0Farba statickej dráhy spinnera.
strokeWidthCGFloat4Hrúbka oblúka aj dráhy v bodoch.
spinnerSizeCGFloat48Priemer spinnera v bodoch.
textColorColor#666666Farba textu popisku.
textSizeCGFloat14Veľkosť textu popisku v bodoch.
textGapCGFloat8Medzera medzi spinnerom a popiskom v bodoch.
textFontNameString?nilNázov vlastného fontu.
backgroundColorColor.whiteFarba pozadia karty (overlay panelu).
cornerRadiusCGFloat12Zaoblenie rohov karty v bodoch.
paddingHorizontalCGFloat16Horizontálne vnútorné odsadenie karty.
paddingVerticalCGFloat20Vertikálne vnútorné odsadenie karty.
dimAmountCGFloat0.0Priehľadnosť stmaveného pozadia (0–1).

Presety

PresetPopis
LoadingStyle.indicatorPre inline použitie (SecureLoadingView). Predvolené.
LoadingStyle.overlayPre 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…"
)