John Costa and GitHub
1cdbde58f5
fix: remove optimistic UI updates in external actions to prevent race condition ( #4711 )
...
When adding/deleting external actions, the UI would sometimes show
duplicated or cloned rows due to a race condition between:
1. The optimistic setActions() call updating local state
2. The save() callback updating externalActions in context
3. The useEffect syncing actions from externalActions
This fix removes the optimistic updates and lets the server response
be the single source of truth, updating the UI only after the context
is updated via the save() success callback.
Fixes #4347
2026-01-17 14:44:33 -08:00
383b80851b
Add localization support to admin status and error messages ( #4631 )
...
* Initial plan
* Add localization support to admin form status and error messages
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Format updated files with prettier
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Replace t() with Translation component in admin page JSX
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* update package-lock.json
* Update web/i18n/en/translation.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-13 16:29:40 -07:00
Ikko Eltociear Ashimine and GitHub
0fb821b33c
Fix typo in actions.tsx ( #3225 )
...
alway -> always
2023-07-31 10:44:48 -07:00
Gabe Kangas and GitHub
e50b23d081
Cleanup unused Javascript ( #3027 )
...
* chore(js): be stricter about dead code warnings
* chore(js): remove dead code and unused exports
* rebase
* chore: remove unused files
* chore(deps): remove unused prop-types dep
* chore(js): remove unused function
* chore(deps): remove + check unused deps
* chore(js): remove unused exports. Closes #3036
2023-05-20 21:15:25 -07:00
Gabe Kangas
b3ac4e1a15
fix(js): consolidate url and account validators
2023-04-16 14:32:18 -07:00
Philipp and GitHub
a290770ac9
Allow embedding HTML for external actions ( #2693 )
...
* Admin UI: implement HTML embeds
* Admin UI External Actions: set correct useHTML on edits
* Admin UI: edit by index, not URL
* External Actions: render HTML on stream frontend
* Don't open embeds externally
* Remove TODO comment
* Add HTML as unique action key
* Admin UI: Actions: use CodeMirror editor, dropdown
2023-02-14 09:08:54 -08:00
Gabe Kangas
2853752937
Make each admin page specify is own layout. Closes #2584
2023-01-15 23:12:38 -08:00
Gabe Kangas
6fbd6cbbcf
Lazy load every instance of using ant icons. Closes #2583
2023-01-15 22:31:36 -08:00
Gabe Kangas
7392ae8a54
Reorganize admin components to help bundling
2023-01-10 00:37:11 -08:00
Gabe Kangas
7d2e2537cf
Fix default protocol validation list
2022-12-14 23:54:46 -08:00
Gabe Kangas
11c4d80e28
Export new url validation functions
2022-12-14 11:52:11 -08:00
Philipp and GitHub
1b4a88392e
Edit external actions ( #2391 )
...
* Initial action editing
* Set previous values in form when editing
* Show previous values when editing an action
* Fix typo
2022-11-29 14:14:11 -08:00
Matthew Heller and GitHub
8320f282d8
More renames from 'visible' to 'open'. ( #2290 )
2022-11-01 14:50:23 -07:00
d1f3fffe2f
reafctor: normalize component formatting ( #2082 )
...
* refactor: move/rename BanUserButton file
* refactor: move/rename Chart file
* refactor: update generic component filenames to PascalCase
* refactor: update config component filenames to PascalCase
* refactor: update AdminLayout component filename to PascalCase
* refactor: update/move VideoJS component
* chore(eslint): disable bad react/require-default-props rule
* refactor: normalize ActionButton component
* refactor: normalize ActionButtonRow component
* refactor: normalize FollowButton component
* refactor: normalize NotifyButton component
* refactor: normalize ChatActionMessage component
* refactor: normalize ChatContainer component
* refactor: normalize ChatJoinMessage component
* refactor: normalize ChatModerationActionMenu component
* refactor: normalize ChatModerationDetailsModal component
* refactor: normalize ChatModeratorNotification component
* refactor: normalize ChatSocialMessage component
* refactor: normalize ChatSystemMessage component
* refactor: normalize ChatTextField component
* refactor: normalize ChatUserBadge component
* refactor: normalize ChatUserMessage component
* refactor: normalize ContentHeader component
* refactor: normalize OwncastLogo component
* refactor: normalize UserDropdown component
* chore(eslint): modify react/function-component-definition rule
* refactor: normalize CodecSelector component
* refactor: update a bunch of functional components using eslint
* refactor: update a bunch of functional components using eslint, pt2
* refactor: update a bunch of functional components using eslint, pt3
* refactor: replace all component->component default imports with named imports
* refactor: replace all component-stories->component default imports with named imports
* refactor: remove default exports from most components
* chore(eslint): add eslint config files for the components and pages dirs
* fix: use-before-define error in ChatContainer
* Fix ChatContainer import
* Only process .tsx files in Next builds
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2022-09-07 00:00:28 -07:00
Gabe Kangas
79bfa0145f
Moved admin to /admin and created blank placeholder for v2 frontend
2022-04-25 15:54:37 -07:00