summaryrefslogtreecommitdiff
path: root/packages/anastasis-webui/src/utils/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/anastasis-webui/src/utils/index.tsx')
-rw-r--r--packages/anastasis-webui/src/utils/index.tsx161
1 files changed, 161 insertions, 0 deletions
diff --git a/packages/anastasis-webui/src/utils/index.tsx b/packages/anastasis-webui/src/utils/index.tsx
new file mode 100644
index 000000000..d1d861469
--- /dev/null
+++ b/packages/anastasis-webui/src/utils/index.tsx
@@ -0,0 +1,161 @@
+/* eslint-disable @typescript-eslint/camelcase */
+import { BackupStates, RecoveryStates, ReducerState } from 'anastasis-core';
+import { FunctionalComponent, h, VNode } from 'preact';
+import { AnastasisProvider } from '../context/anastasis';
+
+export function createExample<Props>(Component: FunctionalComponent<Props>, currentReducerState?: ReducerState, props?: Partial<Props>): { (args: Props): VNode } {
+ const r = (args: Props): VNode => {
+ return <AnastasisProvider value={{
+ currentReducerState,
+ currentError: undefined,
+ back: () => { null },
+ dismissError: () => { null },
+ reset: () => { null },
+ runTransaction: () => { null },
+ startBackup: () => { null },
+ startRecover: () => { null },
+ transition: () => { null },
+ }}>
+ <Component {...args} />
+ </AnastasisProvider>
+ }
+ r.args = props
+ return r
+}
+
+const base = {
+ continents: [
+ {
+ name: "Europe"
+ },
+ {
+ name: "India"
+ },
+ {
+ name: "Asia"
+ },
+ {
+ name: "North America"
+ },
+ {
+ name: "Testcontinent"
+ }
+ ],
+ countries: [
+ {
+ code: "xx",
+ name: "Testland",
+ continent: "Testcontinent",
+ continent_i18n: {
+ de_DE: "Testkontinent"
+ },
+ name_i18n: {
+ de_DE: "Testlandt",
+ de_CH: "Testlandi",
+ fr_FR: "Testpais",
+ en_UK: "Testland"
+ },
+ currency: "TESTKUDOS",
+ call_code: "+00"
+ },
+ {
+ code: "xy",
+ name: "Demoland",
+ continent: "Testcontinent",
+ continent_i18n: {
+ de_DE: "Testkontinent"
+ },
+ name_i18n: {
+ de_DE: "Demolandt",
+ de_CH: "Demolandi",
+ fr_FR: "Demopais",
+ en_UK: "Demoland"
+ },
+ currency: "KUDOS",
+ call_code: "+01"
+ }
+ ],
+ authentication_providers: {
+ "http://localhost:8086/": {
+ http_status: 200,
+ annual_fee: "COL:0",
+ business_name: "ana",
+ currency: "COL",
+ liability_limit: "COL:10",
+ methods: [
+ {
+ type: "question",
+ usage_fee: "COL:0"
+ }
+ ],
+ salt: "WBMDD76BR1E90YQ5AHBMKPH7GW",
+ storage_limit_in_megabytes: 16,
+ truth_upload_fee: "COL:0"
+ },
+ "http://localhost:8087/": {
+ code: 8414,
+ hint: "request to provider failed"
+ },
+ "http://localhost:8088/": {
+ code: 8414,
+ hint: "request to provider failed"
+ },
+ "http://localhost:8089/": {
+ code: 8414,
+ hint: "request to provider failed"
+ }
+ },
+ // expiration: {
+ // d_ms: 1792525051855 // check t_ms
+ // },
+} as Partial<ReducerState>
+
+export const reducerStatesExample = {
+ initial: undefined,
+ recoverySelectCountry: {...base,
+ recovery_state: RecoveryStates.CountrySelecting
+ } as ReducerState,
+ backupSelectCountry: {...base,
+ backup_state: BackupStates.CountrySelecting
+ } as ReducerState,
+ recoverySelectContinent: {...base,
+ recovery_state: RecoveryStates.ContinentSelecting,
+ } as ReducerState,
+ backupSelectContinent: {...base,
+ backup_state: BackupStates.ContinentSelecting,
+ } as ReducerState,
+ secretSelection: {...base,
+ recovery_state: RecoveryStates.SecretSelecting,
+ } as ReducerState,
+ recoveryFinished: {...base,
+ recovery_state: RecoveryStates.RecoveryFinished,
+ } as ReducerState,
+ challengeSelecting: {...base,
+ recovery_state: RecoveryStates.ChallengeSelecting,
+ } as ReducerState,
+ challengeSolving: {...base,
+ recovery_state: RecoveryStates.ChallengeSolving,
+ } as ReducerState,
+ secretEdition: {...base,
+ backup_state: BackupStates.SecretEditing,
+ } as ReducerState,
+ policyReview: {...base,
+ backup_state: BackupStates.PoliciesReviewing,
+ } as ReducerState,
+ policyPay: {...base,
+ backup_state: BackupStates.PoliciesPaying,
+ } as ReducerState,
+ backupFinished: {...base,
+ backup_state: BackupStates.BackupFinished,
+ } as ReducerState,
+ authEditing: {...base,
+ backup_state: BackupStates.AuthenticationsEditing
+ } as ReducerState,
+ attributeEditing: {...base,
+ backup_state: BackupStates.UserAttributesCollecting
+ } as ReducerState,
+ truthsPaying: {...base,
+ backup_state: BackupStates.TruthsPaying
+ } as ReducerState,
+
+}