62 lines
1.5 KiB
Vue
62 lines
1.5 KiB
Vue
|
|
<script setup lang="ts">
|
||
|
|
import { Head, useForm } from '@inertiajs/vue3';
|
||
|
|
import UserForm from '@/components/UserForm.vue';
|
||
|
|
import type { UserFormData } from '@/components/UserForm.vue';
|
||
|
|
import Heading from '@/components/Heading.vue';
|
||
|
|
import AppLayout from '@/layouts/AppLayout.vue';
|
||
|
|
|
||
|
|
type User = {
|
||
|
|
id: number;
|
||
|
|
name: string;
|
||
|
|
email: string;
|
||
|
|
group: string;
|
||
|
|
};
|
||
|
|
|
||
|
|
type Props = {
|
||
|
|
user: User;
|
||
|
|
indexUrl: string;
|
||
|
|
updateUrl: string;
|
||
|
|
userGroups: Record<string, string>;
|
||
|
|
};
|
||
|
|
|
||
|
|
const props = defineProps<Props>();
|
||
|
|
|
||
|
|
const form = useForm<UserFormData>({
|
||
|
|
name: props.user.name,
|
||
|
|
email: props.user.email,
|
||
|
|
password: '',
|
||
|
|
password_confirmation: '',
|
||
|
|
group: props.user.group,
|
||
|
|
});
|
||
|
|
|
||
|
|
function submit() {
|
||
|
|
form.put(props.updateUrl);
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<template>
|
||
|
|
<AppLayout
|
||
|
|
:breadcrumbs="[
|
||
|
|
{ title: 'Users', href: props.indexUrl },
|
||
|
|
{ title: 'Edit user' },
|
||
|
|
]"
|
||
|
|
>
|
||
|
|
<Head :title="`Edit ${props.user.name}`" />
|
||
|
|
|
||
|
|
<div class="flex flex-col space-y-6 p-4">
|
||
|
|
<Heading
|
||
|
|
:title="`Edit ${props.user.name}`"
|
||
|
|
description="Update the user's information"
|
||
|
|
/>
|
||
|
|
<UserForm
|
||
|
|
:form="form"
|
||
|
|
:user-groups="userGroups"
|
||
|
|
:show-password-fields="true"
|
||
|
|
:password-required="false"
|
||
|
|
submit-label="Update user"
|
||
|
|
@submit="submit"
|
||
|
|
/>
|
||
|
|
</div>
|
||
|
|
</AppLayout>
|
||
|
|
</template>
|