Skip to content

Commit 7a595b1

Browse files
committed
update: improvements.
1 parent 8d75905 commit 7a595b1

1 file changed

Lines changed: 30 additions & 32 deletions

File tree

src/routes/(console)/project-[region]-[project]/auth/security/passwordPolicies.svelte

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,65 +8,63 @@
88
import { sdk } from '$lib/stores/sdk';
99
import { Typography, Link, Layout } from '@appwrite.io/pink-svelte';
1010
import type { Models } from '@appwrite.io/console';
11-
import { tick } from 'svelte';
11+
import { onMount } from 'svelte';
1212
13-
let { project }: { project: Models.Project } = $props();
13+
let {
14+
project
15+
}: {
16+
project: Models.Project;
17+
} = $props();
1418
19+
let lastValidLimit = $state(5);
1520
let passwordHistory = $state(5);
16-
let passwordHistoryEnabled = $state(false);
1721
let passwordDictionary = $state(false);
22+
let passwordHistoryEnabled = $state(false);
1823
let authPersonalDataCheck = $state(false);
19-
let lastValidLimit = $state(5);
20-
21-
let maxPasswordInputField: InputNumber | null = null;
2224
23-
// Initialize and sync state when project updates
24-
$effect(() => {
25-
const historyValue = project?.authPasswordHistory;
25+
onMount(() => {
26+
// update initial states here in onMount.
27+
const historyValue = project.authPasswordHistory;
2628
if (historyValue && historyValue > 0) {
2729
passwordHistory = historyValue;
2830
lastValidLimit = historyValue;
2931
}
32+
3033
passwordHistoryEnabled = (historyValue ?? 0) !== 0;
31-
passwordDictionary = project?.authPasswordDictionary ?? false;
32-
authPersonalDataCheck = project?.authPersonalDataCheck ?? false;
34+
passwordDictionary = project.authPasswordDictionary ?? false;
35+
authPersonalDataCheck = project.authPersonalDataCheck ?? false;
3336
});
3437
35-
// restore last valid limit when enabling
3638
$effect(() => {
39+
// restore last valid limit when enabling
3740
if (passwordHistoryEnabled && passwordHistory < 1) {
3841
passwordHistory = lastValidLimit;
3942
}
4043
});
4144
42-
$effect(() => {
43-
if (passwordHistoryEnabled) {
44-
tick().then(() => {
45-
if (maxPasswordInputField) {
46-
maxPasswordInputField.addInputFocus();
47-
}
48-
});
49-
}
50-
});
45+
const hasChanges = $derived.by(() => {
46+
const dictChanged = passwordDictionary !== project.authPasswordDictionary;
47+
const dataCheckChanged = authPersonalDataCheck !== project.authPersonalDataCheck;
48+
const historyChanged = passwordHistoryEnabled !== (project.authPasswordHistory !== 0);
5149
52-
const hasChanges = $derived(
53-
passwordHistoryEnabled !== ((project?.authPasswordHistory ?? 0) !== 0) ||
54-
(passwordHistoryEnabled && passwordHistory !== (project?.authPasswordHistory ?? 0)) ||
55-
passwordDictionary !== (project?.authPasswordDictionary ?? false) ||
56-
authPersonalDataCheck !== (project?.authPersonalDataCheck ?? false)
57-
);
50+
return historyChanged || dictChanged || dataCheckChanged;
51+
});
5852
5953
async function updatePasswordPolicies() {
6054
try {
61-
await sdk.forConsole.projects.updateAuthPasswordHistory({
55+
const projectSdk = sdk.forConsole.projects;
56+
57+
await projectSdk.updateAuthPasswordHistory({
6258
projectId: project.$id,
6359
limit: passwordHistoryEnabled ? passwordHistory : 0
6460
});
65-
await sdk.forConsole.projects.updateAuthPasswordDictionary({
61+
62+
await projectSdk.updateAuthPasswordDictionary({
6663
projectId: project.$id,
6764
enabled: passwordDictionary
6865
});
69-
await sdk.forConsole.projects.updatePersonalDataCheck({
66+
67+
await projectSdk.updatePersonalDataCheck({
7068
projectId: project.$id,
7169
enabled: authPersonalDataCheck
7270
});
@@ -108,10 +106,10 @@
108106
required
109107
max={20}
110108
min={1}
111-
id="password-history"
109+
autofocus
112110
label="Limit"
111+
id="password-history"
113112
bind:value={passwordHistory}
114-
bind:this={maxPasswordInputField}
115113
helper="Maximum 20 passwords." />
116114
{/if}
117115
</Layout.Stack>

0 commit comments

Comments
 (0)