* fix if-else find variables (#92) * fix if-else find variables * change workflow output type * fix tooltip style * fix * 4.8 (#93) * api middleware * perf: app version histories * faq * perf: value type show * fix: ts * fix: Run the same node multiple times * feat: auto save workflow * perf: auto save workflow --------- Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
25 lines
680 B
TypeScript
25 lines
680 B
TypeScript
import { useTranslation } from 'next-i18next';
|
|
import { useEffect } from 'react';
|
|
|
|
export const useBeforeunload = (props?: { callback?: () => any; tip?: string }) => {
|
|
const { t } = useTranslation('common');
|
|
|
|
const { tip = t('Confirm to leave the page'), callback } = props || {};
|
|
|
|
useEffect(() => {
|
|
const listen =
|
|
process.env.NODE_ENV !== 'production'
|
|
? (e: any) => {
|
|
e.preventDefault();
|
|
e.returnValue = tip;
|
|
callback?.();
|
|
}
|
|
: () => {};
|
|
window.addEventListener('beforeunload', listen);
|
|
|
|
return () => {
|
|
window.removeEventListener('beforeunload', listen);
|
|
};
|
|
}, [tip, callback]);
|
|
};
|