feat(web/skillcheck): ability to cancel skillcheck (#364)

* - (FEAT) Added feature to cancel skillcheck
- (FEAT) Added feature to check is any active skillcheck

* - Fix hiding UI

* - return actual boolean

* - Fix focus does not reset properly

* Update skillcheck wrappers
This commit is contained in:
Matin
2023-08-08 14:26:06 +03:30
committed by GitHub
parent c8cca20c89
commit 088c2e094a
3 changed files with 22 additions and 0 deletions

View File

@@ -2,3 +2,7 @@ type SkillCheckDifficulty = 'easy' | 'medium' | 'hard' | { areaSize: number; spe
export const skillCheck = (difficulty: SkillCheckDifficulty | SkillCheckDifficulty[], inputs?: string[]) =>
exports.ox_lib.skillCheck(difficulty);
export const skillCheckActive = (): boolean => exports.ox_lib.skillCheckActive();
export const cancelSkillCheck = (): void => exports.ox_lib.cancelSkillCheck();

View File

@@ -22,6 +22,19 @@ function lib.skillCheck(difficulty, inputs)
return Citizen.Await(skillcheck)
end
function lib.cancelSkillCheck()
if not skillcheck then
error('No skillCheck is active')
end
SendNUIMessage({action = 'skillCheckCancel'})
end
---@return boolean
function lib.skillCheckActive()
return skillcheck ~= nil
end
RegisterNUICallback('skillCheckOver', function(success, cb)
cb(1)

View File

@@ -80,6 +80,11 @@ const SkillCheck: React.FC = () => {
setVisible(true);
});
useNuiEvent('skillCheckCancel', () => {
setVisible(false);
fetchNui('skillCheckOver', false);
});
const handleComplete = (success: boolean) => {
if (!dataRef.current) return;
if (!success || !Array.isArray(dataRef.current.difficulty)) {