diff --git a/package/client/resource/interface/alert.ts b/package/client/resource/interface/alert.ts index f775c98..a9afc2c 100644 --- a/package/client/resource/interface/alert.ts +++ b/package/client/resource/interface/alert.ts @@ -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(); diff --git a/package/client/resource/interface/input.ts b/package/client/resource/interface/input.ts index 2f01400..9455636 100644 --- a/package/client/resource/interface/input.ts +++ b/package/client/resource/interface/input.ts @@ -20,3 +20,5 @@ type inputDialog = ( rows: string[] | InputDialogRowProps[] ) => Promise | undefined>; export const inputDialog: inputDialog = async (heading, rows) => await exports.ox_lib.inputDialog(heading, rows); + +export const closeInputDialog = () => exports.ox_lib.inputDialog(); diff --git a/resource/interface/client/alert.lua b/resource/interface/client/alert.lua index 230ccf3..e9b2cae 100644 --- a/resource/interface/client/alert.lua +++ b/resource/interface/client/alert.lua @@ -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) diff --git a/resource/interface/client/input.lua b/resource/interface/client/input.lua index 8e3bb97..2491138 100644 --- a/resource/interface/client/input.lua +++ b/resource/interface/client/input.lua @@ -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) diff --git a/web/src/features/dialog/AlertDialog.tsx b/web/src/features/dialog/AlertDialog.tsx index 39d935d..f07ef9d 100644 --- a/web/src/features/dialog/AlertDialog.tsx +++ b/web/src/features/dialog/AlertDialog.tsx @@ -40,6 +40,10 @@ const AlertDialog: React.FC = () => { onOpen(); }); + useNuiEvent('closeAlertDialog', () => { + onClose(); + }); + return ( <> { setVisible(true); }); + useNuiEvent('closeInputDialog', () => { + setVisible(false); + }); + const handleClose = () => { setVisible(false); fetchNui('inputData');