diff --git a/frontend/src/components/account/AppProfileAuth.vue b/frontend/src/components/account/AppProfileAuth.vue index 3cac30a..fe7e387 100644 --- a/frontend/src/components/account/AppProfileAuth.vue +++ b/frontend/src/components/account/AppProfileAuth.vue @@ -32,17 +32,27 @@ const props = withDefaults( maxUsernameLength?: number minUsernameLength?: number mode: 'login' | 'register' + password?: string + passwordLabel?: string + passwordPlaceholder?: string pending: boolean registerLabel: string + requirePassword?: boolean title: string username: string usernameLabel: string usernamePlaceholder?: string + variant?: 'default' | 'centered' }>(), { maxUsernameLength: 40, minUsernameLength: 2, + password: '', + passwordLabel: 'Password', + passwordPlaceholder: '', + requirePassword: false, usernamePlaceholder: '', + variant: 'default', }, ) const emit = defineEmits<{ @@ -50,21 +60,30 @@ const emit = defineEmits<{ gallery: [] submit: [] 'update:mode': [value: 'login' | 'register'] + 'update:password': [value: string] 'update:username': [value: string] }>() const canSubmit = computed(() => { const length = props.username.trim().length + const validUsername = + length >= props.minUsernameLength && length <= props.maxUsernameLength return Boolean( props.email && - length >= props.minUsernameLength && - length <= props.maxUsernameLength, + (props.mode === 'login' && props.requirePassword + ? true + : validUsername) && + (!props.requirePassword || + (props.password.length >= 8 && props.password.length <= 72)), ) }) - - -