You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
439 B
24 lines
439 B
import { useState } from 'react';
|
|
|
|
export function useModalForm<T = any>(initialValue?: T) {
|
|
const [open, setOpen] = useState(false);
|
|
const [current, setCurrent] = useState<T | undefined>(initialValue);
|
|
|
|
const show = (item?: T) => {
|
|
setCurrent(item);
|
|
setOpen(true);
|
|
};
|
|
|
|
const hide = () => {
|
|
setOpen(false);
|
|
setCurrent(undefined);
|
|
};
|
|
|
|
return {
|
|
open,
|
|
current,
|
|
show,
|
|
hide,
|
|
setCurrent,
|
|
};
|
|
}
|
|
|