@Sinnbeck not working :/ as I see, preserveState: false is working, but when i set it to false, with preserveScroll set to true, preserving scroll is not working, and after submiting form view get scrolled to top
const EditAppearanceForm = ({event, covers = null, className}) => {
// const event = usePage().props.event;
const {data, setData, reset, post, errors, processing, recentlySuccessful, setDefaults} =
useForm({
options: event.options_array,
cover_photo: null
});
const fileInputRef = useRef(null);
const submit = (e) => {
e.preventDefault();
post(route('events.update', {event: event.id}), {
preserveScroll: true,
preserveState: false,
onSuccess: () => {
reset('cover_photo')
fileInputRef.current.value = null;
setDefaults()
}
});
};
...
const EditPhotoRevealForm = ({event, className}) => {
// const event = usePage().props.event;
const {data, setData, patch, errors, processing, recentlySuccessful, setDefaults} =
useForm({
options: event.options_array
});
const submit = (e) => {
e.preventDefault();
patch(route('events.update', {event: event.id}), {
preserveScroll: true,
preserveState: false,
onSuccess: () => {
setDefaults();
}
});
};
And that's my main component:
const EventView = ({event, cover_photo}) => {
return (
<div className="bg-white p-4 shadow sm:rounded-lg sm:p-8 dark:bg-gray-800">
<EditPhotoRevealForm event={event}/>
</div>
<div className="bg-white p-4 shadow sm:rounded-lg sm:p-8 dark:bg-gray-800">
<EditAppearanceForm event={event} covers={cover_photo}/>
</div>
);
I'm not sure if it's because in this subforms i'm updating property of model which is an array:
<RadioGroup.Root
defaultValue={data?.options.photo_reveal_option.reveal_photos}
className="mt-2 max-w-sm w-full flex flex-row gap-3"
onValueChange={(v) => setData('options', {
...data.options,
...{
photo_reveal_option: {
...data.options.photo_reveal_option,
reveal_photos: v
}
}
})}