fix(frontend): update generic components

This commit is contained in:
yassinedorbozgithub 2025-02-07 22:56:55 +01:00
parent f1270940be
commit 725ca3b29e
2 changed files with 8 additions and 6 deletions

View File

@ -27,7 +27,7 @@ export const FormDialog = ({
<Dialog fullWidth {...rest}> <Dialog fullWidth {...rest}>
<DialogTitle onClose={onCancel}>{title}</DialogTitle> <DialogTitle onClose={onCancel}>{title}</DialogTitle>
<DialogContent>{children}</DialogContent> <DialogContent>{children}</DialogContent>
<DialogActions style={{ padding: "0.5rem" }}> <DialogActions>
<DialogFormButtons <DialogFormButtons
{...{ onSubmit, onCancel, confirmButtonProps, cancelButtonProps }} {...{ onSubmit, onCancel, confirmButtonProps, cancelButtonProps }}
/> />

View File

@ -8,29 +8,30 @@
import React from "react"; import React from "react";
import { FormDialog } from "@/app-components/dialogs"; import { FormDialog as Wrapper } from "@/app-components/dialogs";
import { useTranslate } from "@/hooks/useTranslate"; import { useTranslate } from "@/hooks/useTranslate";
import { TTranslationKeys } from "@/i18n/i18n.types"; import { TTranslationKeys } from "@/i18n/i18n.types";
import { ComponentFormDialogProps } from "@/types/common/dialogs.types"; import { ComponentFormDialogProps } from "@/types/common/dialogs.types";
type GenericFormDialogProps<T> = ComponentFormDialogProps<T> & { type GenericFormDialogProps<T> = ComponentFormDialogProps<T> & {
Form: React.ElementType; Form: React.ElementType;
rowKey?: keyof T;
addText?: TTranslationKeys; addText?: TTranslationKeys;
editText?: TTranslationKeys; editText?: TTranslationKeys;
}; };
export const GenericFormDialog = <T,>({ export const GenericFormDialog = <T,>({
Form, Form,
payload, rowKey,
payload: data,
...rest ...rest
}: GenericFormDialogProps<T>) => { }: GenericFormDialogProps<T>) => {
const { t } = useTranslate(); const { t } = useTranslate();
const translationKey = payload ? rest.editText : rest.addText; const hasRow = rowKey ? data?.[rowKey] : data;
const translationKey = hasRow ? rest.editText : rest.addText;
return ( return (
<Form <Form
data={payload}
Wrapper={FormDialog}
onSuccess={() => { onSuccess={() => {
rest.onClose(true); rest.onClose(true);
}} }}
@ -38,6 +39,7 @@ export const GenericFormDialog = <T,>({
title: translationKey && t(translationKey), title: translationKey && t(translationKey),
...rest, ...rest,
}} }}
{...{ data, Wrapper }}
/> />
); );
}; };