@live-change/user-frontend 0.9.109 → 0.9.111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,30 @@
1
1
  <template>
2
2
  <div class="w-full lg:w-6/12 md:w-9/12 max-w-[32rem]" v-shared-element:form="{ duration: '300ms', includeChildren: true }">
3
3
 
4
- <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUnknown">
4
+ <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUnknown && !isRedirecting">
5
5
  <div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Unknown link</div>
6
- <p class="mt-0 mb-2 p-0 leading-normal">We can't find your secret link. Check if you copied the address correctly.</p>
6
+ <p class="mt-0 mb-2 p-0 leading-normal">
7
+ We can't find your secret link. Check if you copied the address correctly.
8
+ </p>
7
9
  </div>
8
10
 
9
- <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUsed">
11
+ <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isUsed && !isRedirecting">
10
12
  <div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Link used</div>
11
- <p class="mt-0 mb-2 p-0 leading-normal">This link was already used.</p>
13
+ <p class="mt-0 mb-2 p-0 leading-normal">
14
+ This link was already used.
15
+ </p>
12
16
  </div>
13
17
 
14
- <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isExpired && !isUsed">
18
+ <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6" v-if="isExpired && !isUsed && !isRedirecting">
15
19
  <div class="text-surface-900 dark:text-surface-0 font-medium mb-4 text-xl">Link expired</div>
16
- <p class="mt-0 mb-6 p-0 leading-normal">Your secret link already expired. To send another link click button below.</p>
20
+ <p class="mt-0 mb-6 p-0 leading-normal">
21
+ Your secret link already expired. To send another link click button below.
22
+ </p>
17
23
  <Button label="Resend" class="p-button-lg" @click="resend"></Button>
18
24
  </div>
19
25
 
20
- <div class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6 flex justify-center" v-if="isReady">
26
+ <div v-if="isReady || isRedirecting"
27
+ class="bg-surface-0 dark:bg-surface-900 rounded-border shadow p-6 flex justify-center">
21
28
  <ProgressSpinner class="m-4" />
22
29
  </div>
23
30
  </div>
@@ -27,7 +34,7 @@
27
34
  import Button from "primevue/button"
28
35
  import ProgressSpinner from "primevue/progressspinner"
29
36
 
30
- import { computed, inject } from 'vue'
37
+ import { computed, inject, ref } from 'vue'
31
38
  import { useRouter } from 'vue-router'
32
39
  import { useNow } from '@vueuse/core'
33
40
  import { path, live, actions } from '@live-change/vue3-ssr'
@@ -75,23 +82,30 @@
75
82
  const isUnknown = computed(() => link.value === null)
76
83
  const isExpired = computed(() => link.value ? (now.value.toISOString() > link.value.expire) : false )
77
84
  const isUsed = computed(() => authenticationState.value && authenticationState.value === 'used')
78
- const isReady = computed(() => !(isUnknown.value || isExpired.value || isUsed.value))
85
+ const isReady = computed(() => !(isUnknown.value || isExpired.value || isUsed.value))
79
86
 
80
87
  //const targetPage = computed(() => link.value?.authenticationData?.targetPage )
81
88
 
89
+ const isRedirecting = ref(false)
90
+
82
91
  if(typeof window != 'undefined') setTimeout(() => { /// timeout "fixes" suspense bug
92
+ console.log("LINK", link.value)
83
93
  if(isReady.value) {
84
94
  workingZone.addPromise('finishMessageAuthentication', (async () => {
85
95
  const { result, targetPage } = await finishMessageAuthentication({ secretType: 'link', secret: secretCode })
86
96
  router.push(targetPage)
87
97
  })())
98
+ isRedirecting.value = true
99
+ return
88
100
  }
89
101
  if(isUsed.value || isExpired.value) {
102
+ console.log("LINK USED IS USED!", link)
90
103
  const fallbackPage = link.value?.authenticationData?.fallbackPage
91
104
  console.log("FB", fallbackPage)
92
105
  if(fallbackPage) {
93
106
  const error = isUsed.value ? 'used' : 'expired'
94
107
  router.push({ ...fallbackPage, params: { ...fallbackPage.params, error } })
108
+ isRedirecting.value = true
95
109
  }
96
110
  }
97
111
  }, 10)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/user-frontend",
3
- "version": "0.9.109",
3
+ "version": "0.9.111",
4
4
  "scripts": {
5
5
  "memDev": "node --inspect --expose-gc server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
6
6
  "localDevInit": "rm tmp.db; node server/start.js localDev --enableSessions --initScript ./init.js",
@@ -22,29 +22,29 @@
22
22
  },
23
23
  "type": "module",
24
24
  "dependencies": {
25
- "@live-change/cli": "^0.9.109",
26
- "@live-change/dao": "^0.9.109",
27
- "@live-change/dao-vue3": "^0.9.109",
28
- "@live-change/dao-websocket": "^0.9.109",
29
- "@live-change/email-service": "^0.9.109",
30
- "@live-change/framework": "^0.9.109",
31
- "@live-change/identicon-service": "^0.9.109",
32
- "@live-change/image-frontend": "^0.9.109",
33
- "@live-change/message-authentication-service": "^0.9.109",
34
- "@live-change/notification-service": "^0.9.109",
35
- "@live-change/password-authentication-service": "^0.9.109",
36
- "@live-change/pattern": "^0.9.109",
37
- "@live-change/secret-code-service": "^0.9.109",
38
- "@live-change/secret-link-service": "^0.9.109",
39
- "@live-change/security-frontend": "^0.9.109",
40
- "@live-change/security-service": "^0.9.109",
41
- "@live-change/session-service": "^0.9.109",
42
- "@live-change/timer-service": "^0.9.109",
43
- "@live-change/upload-service": "^0.9.109",
44
- "@live-change/user-identification-service": "^0.9.109",
45
- "@live-change/user-service": "^0.9.109",
46
- "@live-change/vue3-components": "^0.9.109",
47
- "@live-change/vue3-ssr": "^0.9.109",
25
+ "@live-change/cli": "^0.9.111",
26
+ "@live-change/dao": "^0.9.111",
27
+ "@live-change/dao-vue3": "^0.9.111",
28
+ "@live-change/dao-websocket": "^0.9.111",
29
+ "@live-change/email-service": "^0.9.111",
30
+ "@live-change/framework": "^0.9.111",
31
+ "@live-change/identicon-service": "^0.9.111",
32
+ "@live-change/image-frontend": "^0.9.111",
33
+ "@live-change/message-authentication-service": "^0.9.111",
34
+ "@live-change/notification-service": "^0.9.111",
35
+ "@live-change/password-authentication-service": "^0.9.111",
36
+ "@live-change/pattern": "^0.9.111",
37
+ "@live-change/secret-code-service": "^0.9.111",
38
+ "@live-change/secret-link-service": "^0.9.111",
39
+ "@live-change/security-frontend": "^0.9.111",
40
+ "@live-change/security-service": "^0.9.111",
41
+ "@live-change/session-service": "^0.9.111",
42
+ "@live-change/timer-service": "^0.9.111",
43
+ "@live-change/upload-service": "^0.9.111",
44
+ "@live-change/user-identification-service": "^0.9.111",
45
+ "@live-change/user-service": "^0.9.111",
46
+ "@live-change/vue3-components": "^0.9.111",
47
+ "@live-change/vue3-ssr": "^0.9.111",
48
48
  "@vueuse/core": "^12.3.0",
49
49
  "codeceptjs-assert": "^0.0.5",
50
50
  "codeceptjs-video-helper": "0.1.3",
@@ -65,7 +65,7 @@
65
65
  "wtfnode": "^0.9.1"
66
66
  },
67
67
  "devDependencies": {
68
- "@live-change/codeceptjs-helper": "^0.9.109",
68
+ "@live-change/codeceptjs-helper": "^0.9.111",
69
69
  "codeceptjs": "^3.6.10",
70
70
  "generate-password": "1.7.1",
71
71
  "playwright": "1.49.1",
@@ -76,5 +76,5 @@
76
76
  "author": "Michał Łaszczewski <michal@laszczewski.pl>",
77
77
  "license": "BSD-3-Clause",
78
78
  "description": "",
79
- "gitHead": "9e2eb6a21b71356129d3459b368e1b462e378bf4"
79
+ "gitHead": "ab89b1aad3a6c7b88151b9b2e2b56bf749ea3584"
80
80
  }