Commit Graph
15 Commits
Author SHA1 Message Date
John CostaandGitHub 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
CopilotGitHubgabekCopilotcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Gabe Kangas
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 AshimineandGitHub 0fb821b33c Fix typo in actions.tsx (#3225)
alway -> always
2023-07-31 10:44:48 -07:00
Gabe KangasandGitHub 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
PhilippandGitHub 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
PhilippandGitHub 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 HellerandGitHub 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