feat(Former): update layout to use buttonArea prop instead of buttonOnTop

This commit is contained in:
2026-01-28 20:07:30 +02:00
parent ad2252f5e4
commit ce7cf9435a
4 changed files with 14 additions and 12 deletions

View File

@@ -23,8 +23,8 @@ export interface FormerProps<T extends FieldValues = any> {
id?: string; id?: string;
keepOpen?: boolean; keepOpen?: boolean;
layout?: { layout?: {
buttonArea?: "bottom" | "none" | "top";
buttonAreaGroupProps?: GroupProps; buttonAreaGroupProps?: GroupProps;
buttonOnTop?: boolean;
closeButtonProps?: ButtonProps; closeButtonProps?: ButtonProps;
closeButtonTitle?: React.ReactNode; closeButtonTitle?: React.ReactNode;
renderBottom?: FormerSectionRender<T>; renderBottom?: FormerSectionRender<T>;

View File

@@ -2,8 +2,8 @@ import { useFormerStore } from './Former.store';
import { FormerButtonArea } from './FormerButtonArea'; import { FormerButtonArea } from './FormerButtonArea';
export const FormerLayoutBottom = () => { export const FormerLayoutBottom = () => {
const { buttonOnTop, getState, opened, renderBottom } = useFormerStore((state) => ({ const { buttonArea, getState, opened, renderBottom } = useFormerStore((state) => ({
buttonOnTop: state.layout?.buttonOnTop, buttonArea: state.layout?.buttonArea,
getState: state.getState, getState: state.getState,
opened: state.opened, opened: state.opened,
renderBottom: state.layout?.renderBottom, renderBottom: state.layout?.renderBottom,
@@ -19,5 +19,5 @@ export const FormerLayoutBottom = () => {
); );
} }
return buttonOnTop ? <></> : <FormerButtonArea />; return buttonArea === "bottom" ? <FormerButtonArea /> : <></>;
}; };

View File

@@ -2,8 +2,8 @@ import { useFormerStore } from './Former.store';
import { FormerButtonArea } from './FormerButtonArea'; import { FormerButtonArea } from './FormerButtonArea';
export const FormerLayoutTop = () => { export const FormerLayoutTop = () => {
const { buttonOnTop, getState, opened, renderTop } = useFormerStore((state) => ({ const { buttonArea, getState, opened, renderTop } = useFormerStore((state) => ({
buttonOnTop: state.layout?.buttonOnTop, buttonArea: state.layout?.buttonArea,
getState: state.getState, getState: state.getState,
opened: state.opened, opened: state.opened,
renderTop: state.layout?.renderTop, renderTop: state.layout?.renderTop,
@@ -18,5 +18,5 @@ export const FormerLayoutTop = () => {
getState getState
); );
} }
return buttonOnTop ? <FormerButtonArea /> : <></>; return buttonArea === "top" ? <FormerButtonArea /> : <></>;
}; };

View File

@@ -35,8 +35,8 @@ export const FormTest = () => {
url: '', url: '',
}); });
const [layout, setLayout] = useState({ const [layout, setLayout] = useState({
buttonArea: "bottom",
buttonAreaGroupProps: { justify: 'center' }, buttonAreaGroupProps: { justify: 'center' },
buttonOnTop: false,
title: 'Custom Former Title', title: 'Custom Former Title',
} as FormerProps['layout']); } as FormerProps['layout']);
@@ -63,11 +63,13 @@ export const FormTest = () => {
label="Disable HTML Form" label="Disable HTML Form"
onChange={(event) => setDisableHTML(event.currentTarget.checked)} onChange={(event) => setDisableHTML(event.currentTarget.checked)}
/> />
<Switch <Select
checked={layout?.buttonOnTop ?? false} data={['top', 'bottom', 'none']}
label="Button On Top"
onChange={(event) => setLayout({ ...layout, buttonOnTop: event.currentTarget.checked })} onChange={(value) => setLayout({ ...layout, buttonArea: value as 'bottom' | 'none' | 'top' })}
value={layout?.buttonArea}
/> />
<Switch <Switch
checked={apiOptions.type === 'api'} checked={apiOptions.type === 'api'}
label="Use API" label="Use API"