feat(client/interface): close functions for input and alert dialogs

This commit is contained in:
Luke
2022-09-29 11:39:30 +02:00
parent e624aa2559
commit 6a8eb35a0a
6 changed files with 33 additions and 0 deletions

View File

@@ -8,3 +8,5 @@ interface AlertDialogProps {
type alertDialog = (data: AlertDialogProps) => Promise<'cancel' | 'confirm'>;
export const alertDialog: alertDialog = async (data) => await exports.ox_lib.alertDialog(data);
export const closeAlertDialog = () => exports.ox_lib.closeAlertDialog();

View File

@@ -20,3 +20,5 @@ type inputDialog = (
rows: string[] | InputDialogRowProps[]
) => Promise<Array<string | number | boolean> | undefined>;
export const inputDialog: inputDialog = async (heading, rows) => await exports.ox_lib.inputDialog(heading, rows);
export const closeInputDialog = () => exports.ox_lib.inputDialog();

View File

@@ -21,6 +21,17 @@ function lib.alertDialog(data)
return Citizen.Await(alert)
end
function lib.closeAlertDialog()
if not alert then return end
alert:resolve(nil)
alert = nil
SetNuiFocus(false, false)
SendNUIMessage({
action = 'closeAlertDialog'
})
end
RegisterNUICallback('closeAlert', function(data, cb)
cb(1)
SetNuiFocus(false, false)

View File

@@ -40,6 +40,16 @@ function lib.inputDialog(heading, rows)
return Citizen.Await(input)
end
function lib.closeInputDialog()
if not input then return end
input:resolve(nil)
input = nil
SetNuiFocus(false, false)
SendNUIMessage({
action = 'closeInputDialog'
})
end
RegisterNUICallback('inputData', function(data, cb)
cb(1)
SetNuiFocus(false, false)

View File

@@ -40,6 +40,10 @@ const AlertDialog: React.FC = () => {
onOpen();
});
useNuiEvent('closeAlertDialog', () => {
onClose();
});
return (
<>
<Dialog

View File

@@ -39,6 +39,10 @@ const InputDialog: React.FC = () => {
setVisible(true);
});
useNuiEvent('closeInputDialog', () => {
setVisible(false);
});
const handleClose = () => {
setVisible(false);
fetchNui('inputData');