feat(Former): ✨ update layout to use buttonArea prop instead of buttonOnTop
This commit is contained in:
@@ -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>;
|
||||||
|
|||||||
@@ -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 /> : <></>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 /> : <></>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user