-
diff --git a/resources/js/components/ui/image-upload-field/index.ts b/resources/js/components/ui/image-upload-field/index.ts
new file mode 100644
index 0000000..d50e22c
--- /dev/null
+++ b/resources/js/components/ui/image-upload-field/index.ts
@@ -0,0 +1 @@
+export { default as ImageUploadField } from './ImageUploadField.vue';
diff --git a/resources/js/composables/useFormDialog.ts b/resources/js/composables/useFormDialog.ts
new file mode 100644
index 0000000..708fd63
--- /dev/null
+++ b/resources/js/composables/useFormDialog.ts
@@ -0,0 +1,26 @@
+import { watch } from 'vue';
+import type { Ref } from 'vue';
+
+interface UseFormDialogOptions
{
+ open: Ref;
+ source: () => T;
+ populate: (value: T) => void;
+ reset: () => void;
+}
+
+export function useFormDialog({
+ open,
+ source,
+ populate,
+ reset,
+}: UseFormDialogOptions) {
+ watch(source, populate);
+
+ watch(open, (isOpen) => {
+ if (isOpen) {
+ populate(source());
+ } else {
+ reset();
+ }
+ });
+}