mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 12:35:46 +00:00
add type
This commit is contained in:
@ -6,7 +6,7 @@ import { useState } from 'react';
|
|||||||
const createPromise = () => {
|
const createPromise = () => {
|
||||||
let resolver: any;
|
let resolver: any;
|
||||||
return [
|
return [
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve) => {
|
||||||
resolver = resolve;
|
resolver = resolve;
|
||||||
}),
|
}),
|
||||||
resolver
|
resolver
|
||||||
@ -16,7 +16,9 @@ const createPromise = () => {
|
|||||||
/* Adapted from https://daveteu.medium.com/react-custom-confirmation-box-458cceba3f7b */
|
/* Adapted from https://daveteu.medium.com/react-custom-confirmation-box-458cceba3f7b */
|
||||||
export const useConfirm = () => {
|
export const useConfirm = () => {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [resolver, setResolver] = useState({ resolver: null });
|
const [resolver, setResolver] = useState<((status: boolean) => void) | null>(
|
||||||
|
null
|
||||||
|
);
|
||||||
const [label, setLabel] = useState('');
|
const [label, setLabel] = useState('');
|
||||||
|
|
||||||
const getConfirmation = async (text: string) => {
|
const getConfirmation = async (text: string) => {
|
||||||
@ -24,13 +26,15 @@ export const useConfirm = () => {
|
|||||||
setOpen(true);
|
setOpen(true);
|
||||||
const [promise, resolve] = await createPromise();
|
const [promise, resolve] = await createPromise();
|
||||||
|
|
||||||
setResolver({ resolve });
|
setResolver(resolve);
|
||||||
return promise;
|
return promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onClick = async (status: boolean) => {
|
const onClick = async (status: boolean) => {
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
resolver.resolve(status);
|
if (resolver) {
|
||||||
|
resolver(status);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const Confirmation = () => (
|
const Confirmation = () => (
|
||||||
@ -49,7 +53,10 @@ type InputProps = {
|
|||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description: string;
|
||||||
};
|
};
|
||||||
export const useReauth = () => {
|
export const useReauth = (): [
|
||||||
|
(props: InputProps) => Promise<[string, boolean]>,
|
||||||
|
() => JSX.Element
|
||||||
|
] => {
|
||||||
const [inputProps, setInputProps] = useState<InputProps>({
|
const [inputProps, setInputProps] = useState<InputProps>({
|
||||||
label: '',
|
label: '',
|
||||||
name: '',
|
name: '',
|
||||||
@ -58,7 +65,9 @@ export const useReauth = () => {
|
|||||||
|
|
||||||
const [value, setValue] = useState('');
|
const [value, setValue] = useState('');
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [resolver, setResolver] = useState({ resolver: null });
|
const [resolver, setResolver] = useState<{
|
||||||
|
resolve: (result: string, positive: boolean) => void;
|
||||||
|
} | null>(null);
|
||||||
|
|
||||||
const getReauthText = async (props: InputProps) => {
|
const getReauthText = async (props: InputProps) => {
|
||||||
setInputProps(props);
|
setInputProps(props);
|
||||||
@ -71,7 +80,9 @@ export const useReauth = () => {
|
|||||||
|
|
||||||
const onClick = async (result: string, positive: boolean) => {
|
const onClick = async (result: string, positive: boolean) => {
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
resolver.resolve(result, positive);
|
if (resolver) {
|
||||||
|
resolver.resolve(result, positive);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const ReauthModal = () => (
|
const ReauthModal = () => (
|
||||||
|
Reference in New Issue
Block a user