325 Commits

Author SHA1 Message Date
Senlar
f33c613b6d Fix: Skillcheck animation speed inconsistencies by switching to time-… (#66)
* Fix: Skillcheck animation speed inconsistencies by switching to time-based RAF loop

This PR fixes long-standing issues with the skillcheck mini-game animation speed being inconsistent across machines and after long play sessions. Some players reported extremely slow indicator movement, others extremely fast, and many noticed that the speed changed unpredictably the longer they stayed logged in.

The root cause was that the skillcheck relied on a useInterval tick (setInterval-like behavior) and assumed it fired every 1ms. In reality, browser timer clamping and throttling make interval timing highly unpredictable — especially in embedded CEF browsers like FiveM’s NUI.

This PR replaces tick-based animation with a time-based requestAnimationFrame loop using performance.now(), ensuring perfectly consistent animation timing across all hardware and browser states. I have used this method in other NUI based skillcheck scripts to address this same behavior.

Signed-off-by: Senlar <brandonrhue@gmail.com>

* Refactor keyHandler and clean up code

Signed-off-by: Senlar <brandonrhue@gmail.com>

* Refactor keyHandler and cleanup useEffect logic again

Signed-off-by: Senlar <brandonrhue@gmail.com>

---------

Signed-off-by: Senlar <brandonrhue@gmail.com>
2026-02-11 18:22:54 +01:00
mikigoalie
967682c449 fix(web/notifications): bottom center position (#33) 2025-07-26 16:07:52 +02:00
Luca
301ff2daf8 feat(interface/input): add size to input dialog options (#32) 2025-07-26 14:34:01 +02:00
ANTOND.
581640c07a feat(web/dialog/textarea): add min and max length (#30) 2025-07-15 21:51:52 +02:00
ANTOND.
22b3600a14 fix(web): re-apply patch for react-hot-toast (#13) 2025-05-18 14:32:22 +02:00
Linden
f0df7ab696 refactor(web/fetchNui): fetch stub
Just a naive way to patch some common exploits.
2025-03-18 16:55:04 +11:00
Stan
c45a9a1698 fix(web): Remove unused font imports. Fixes #721. (#722)
* fix(web): Remove unused fonts and switch to Inter. Fixes #721.

* chore(web): Switch to self-hosted Roboto font

* chore(web): Add font style variants

* chore(web): Add Roboto Mono font

* chore(web): Formatting
2025-03-08 19:45:24 +01:00
Linden
aebef6d7de feat(web): wrap app in errorboundary
Prevents the app from failing on render errors as mentioned
in #675. More to come..
2024-12-06 17:25:34 +11:00
NotMango
80267eb1f0 feat(web/radial): radial menu text scaling (#639)
* radial menu improvements

* addressing comments from Luke

* removing uneeded comments

* style(web/radial): remove icon scaling, increase number of items on page

* style(web/radial): cursor pointer, remove stroke, container overflow

---------

Co-authored-by: Luke <39926192+LukeWasTakenn@users.noreply.github.com>
2024-09-12 14:40:59 +02:00
northsqrd
24cedb07ae feat(interface/multi-select): add maxSelectedValues (#563) 2024-05-08 04:28:52 +10:00
RrybaN
88edfbe89a fix(web/notify): prevent resetting the notifications circle without an id (#566) 2024-05-02 16:10:27 +10:00
RrybaN
8bb3b5a835 fix(notify): reset circle animation on notification re-trigger with id (#559)
Resolves #554 

* fix(notify): prevent duration not showing in notifications with id

* fix(notify): add toast key to reset circle animation

* refactor(web/notify): use ref for key counter instead of state

---------

Co-authored-by: Luke <39926192+LukeWasTakenn@users.noreply.github.com>
2024-04-27 15:33:34 +02:00
RrybaN
9d08560e91 feat(notify): show duration (#542)
* feat(notify): add option to show duration

lib.notify new option
`showDuration?: boolean -- Option to show duration bar`

* fix(notify): allow icon color using hexadecimal values

* chore(notify): show duration to default and added tinycolor2 for supporting available color formats

* feat(notify): define interface for showDuration
2024-04-12 17:15:57 +02:00
Lily
71b30b928d feat(web/select): searchable option (#513) 2024-03-10 14:06:11 +01:00
qwezertino
669dc5ae87 fix(web/skillcheck) fix cyrillic keyboards not detecting correct inputs (#512)
resolves #410
2024-03-09 11:06:06 +01:00
xSamiVS
d8578281ee feat(web/textui) bottom center position(#507) 2024-03-09 11:04:18 +01:00
ktx-mega
78891fb4b9 feat(web): support icon urls in radial menu (#487)
* feat(package): support icon urls in radial menu

* fix: update lua & ts types + clamp size parameters
2024-02-18 12:11:40 +01:00
Luke
241fb2107b style(web/skillcheck): adjust scaling for 1440p and beyond 2023-11-18 16:06:27 +01:00
Luke
dda2e0927f fix(web/notifications): pass animation to notifications icon 2023-11-15 15:34:08 +01:00
Luke
36662050ff chore: optimize imports 2023-11-15 15:32:04 +01:00
Luke
882e372895 feat(web): font awesome icon animations 2023-11-15 15:28:21 +01:00
Luke
a50f7a2052 feat(web): ability to align icon at the top for notifs/text ui 2023-11-15 14:36:37 +01:00
Luke
4d14bb0124 feat(web/context): optional context menu title property
Closes #428
2023-10-28 18:51:22 +02:00
Luke
1c5f4d6ac8 feat(web/context): allow separate metadata progress bars colors
Closes #430
2023-10-28 18:30:57 +02:00
Luke
b1d54b6f26 fix(web): resolve build errors 2023-09-30 10:19:42 +02:00
Luke
9a40e6b519 fix(web/input): properly reset from when using closeInputDialog 2023-09-28 11:48:57 +02:00
Luke
97b9f18f82 feat(web/skillcheck): fail skill check only on keys that aren't passed 2023-09-22 14:03:48 +02:00
Luke
aaa37047f1 feat(web/context): readOnly buttons 2023-09-22 13:49:15 +02:00
BerkieBb
3c0136afd8 feat(web/input): returnString for date inputs (#411)
* feat(interface/input): useFormat field

* feat(interface/input): useFormat field

* feat(types/dialog): useFormat field

* feat(components/date): format date conversion

* tweak(components/date): forgot other data type

* chore(interface/input): more descriptive name

* chore(interface/input): more descriptive name

* chore(types/dialog): more descriptive name

* tweak(components/date): reset things

* feat(dialog/input): date conversion with returnString

* refactor(web/input): remove unnecessary state

---------

Co-authored-by: Luke <39926192+LukeWasTakenn@users.noreply.github.com>
2023-09-11 23:17:35 +02:00
Luke
ef6a8cad6f refactor(web/alert): darker alert dialog content color
it doesn't make sense for the content to be the same color as the title
2023-09-02 23:28:37 +02:00
Lunar-Scripts
2393a64e50 Add step property to NumberInput. (#401) 2023-09-01 20:14:13 +02:00
Matin
088c2e094a 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
2023-08-08 12:56:06 +02:00
Jellyton
c8cca20c89 tweak(web): adjust markdown heading margins (#393)
* tweak(web): components for markdown headings

Fixed nomenclature and set as default export.

* fix(ui): temp remove MarkdownComponents file

* fix(ui): return MarkdownComponents file
2023-08-07 12:05:15 +02:00
daZepelin
99519d3d8e feat(web/dialog): precision prop for number input (#372)
* feat(web/input): added precision prop for number input

* fix(web/input): added missing disabled prop to checkbox

* fix(web/input): correct icon for debug data

* fix(web/input): remove step prop from typings

* fix(web/debug): remove step prop
2023-07-27 11:44:08 +02:00
Luke
5b9bb531a9 fix(web/skillcheck): fail on wrong key press 2023-07-20 22:40:01 +02:00
RIOT
78e0e52656 fix(web/input): block form submission with unclamped numbers (#360) 2023-06-25 11:41:35 +02:00
Luke
45e9588d48 fix(web/input): don't allow user to submit form with unclamped numbers 2023-06-25 00:15:37 +02:00
Luke
7816ce7a33 fix(web): cap list menu width for long labeled items
resolves #350
2023-06-11 10:30:21 +02:00
LukeWasTaken
21990796f5 feat(web): ability to style description in notifications 2023-05-10 16:25:32 +02:00
Lockwood
9a0fc24e69 feat(interface/input): minLength & maxLength option (#286) 2023-05-09 00:00:47 +02:00
mikigoalie
c94d019f67 feat(web/notifications): add warning type (#315)
* update(notify): add warning it's own type

* update(notify): inform > info, change warning default icon to circle

* fix typo

* update(notify): case for def notifs, update icons

use circle icons for all notifs so its more unified, also looks a bit better imo

* fix(progressBar): spamming cancel

spamming cancel would sometimes not interrupt current progbar

* Revert "fix(progressBar): spamming cancel"

This reverts commit b030fddd20f9f2b92a07ce4199c73e3b43f435a3.
2023-05-01 12:08:02 +02:00
Jag
bda2c2657a feat(web/radial): newlines support (#316)
* feat(radial): Support newlines

* chore: update to `  \n` to match markdown
2023-05-01 11:07:17 +02:00
Andyyy7666
125f6e1a56 fix(web/setClipboard): support multi-line text (#302) 2023-04-21 00:04:08 +10:00
David Malchin
9f9170eb44 feat(interface/radial): more button if there are more than 8 items (#284) 2023-04-02 11:39:33 +02:00
Luke
c011d51184 fix(web/input): fix select throwing error when there's no options sent 2023-03-10 20:02:13 +01:00
Luke
548190dbb2 fix(web/alert): fix images escaping container width and height
resolves #265
2023-03-10 19:39:30 +01:00
Diogo Manuel Coelho Morais dos Santos
d72b7eb00a fix(radial): go back to correct more page when going back from sub (#247) 2023-03-01 06:47:14 +11:00
Luke
a0ebec5877 refactor(web/context): move inline styling to createStyles 2023-02-26 12:10:51 +01:00
Linden
36d11444fa fix(web/dialog): delay fetch until promise is resolved
Resolves #246; probably needs a better look at.
2023-02-26 12:31:08 +11:00
Luke
60e3a12033 Revert "fix(web/radial): go back to correct more page when going back from sub"
This reverts commit 709d512422.
2023-02-25 15:37:13 +01:00