feat(huds): pick a broadcast HUD from the library, not a hardcoded pair - #575
Open
LCrew wants to merge 1 commit into
Open
feat(huds): pick a broadcast HUD from the library, not a hardcoded pair#575LCrew wants to merge 1 commit into
LCrew wants to merge 1 commit into
Conversation
The HUD pickers in the demo player and the stream deck listed a fixed horizontal/vertical union, because those were the only two things the pod could load. They were never separate HUDs -- only layouts of the one bundle JTs Hud Manager ships -- and they are now the two seeded builtin rows in broadcast_huds, so both pickers list the library instead and send a slug. The HUD also outgrew its home. It was a two-value setting, which fit beside the other playback toggles on the demo settings page; it is a library with an upload and a per-row default now, so it gets a page. demo-settings deliberately stops writing default_hud_mode as well as reading it -- the api still reads that row as its fallback, so a page that kept rewriting it would quietly reassert an old layout every time those settings were saved. useBroadcastHuds queries with raw gql rather than the generated zeus client: broadcast_huds is new, and the generated types come from `yarn codegen` against a running Hasura, so zeus here would mean nobody can build this branch until someone has migrated an instance. The list is cached at module scope because three pickers can mount at once and it changes only on an import. $apollo is reached inline rather than destructured at the top of <script setup>: a top-level binding of that name lands in setupState, and vue-apollo's options mixin then cannot assign this.$apollo in beforeCreate -- Vue refuses to let the Options API mutate a <script setup> binding, and the proxy set trap returning false throws before the page can mount. Locales carry the new keys in English so check-translations stays green (16/16) and a missing key never renders as a raw dotted path; the four HUD-layout strings are removed everywhere, having lost their last consumer. Depends on the api's broadcast_huds table.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The HUD pickers in the demo player and the stream deck listed a fixed horizontal/vertical union, because those were the only two things the pod could load. They were never separate HUDs -- only layouts of the one bundle JTs Hud Manager ships -- and they are now the two seeded builtin rows in broadcast_huds, so both pickers list the library instead and send a slug.
The HUD also outgrew its home. It was a two-value setting, which fit beside the other playback toggles on the demo settings page; it is a library with an upload and a per-row default now, so it gets a page. demo-settings deliberately stops writing default_hud_mode as well as reading it -- the api still reads that row as its fallback, so a page that kept rewriting it would quietly reassert an old layout every time those settings were saved.
useBroadcastHuds queries with raw gql rather than the generated zeus client: broadcast_huds is new, and the generated types come from
yarn codegenagainst a running Hasura, so zeus here would mean nobody can build this branch until someone has migrated an instance. The list is cached at module scope because three pickers can mount at once and it changes only on an import.$apollo is reached inline rather than destructured at the top of <script setup>: a top-level binding of that name lands in setupState, and vue-apollo's options mixin then cannot assign this.$apollo in beforeCreate -- Vue refuses to let the Options API mutate a <script setup> binding, and the proxy set trap returning false throws before the page can mount.
Locales carry the new keys in English so check-translations stays green (16/16) and a missing key never renders as a raw dotted path; the four HUD-layout strings are removed everywhere, having lost their last consumer.
Depends on the api's broadcast_huds table.