Repository navigation
Feature full calendar component - #26
Merged
Merged
Conversation
TemuulenBM
commented
Nov 7, 2023
Contributor
- Implement the full calendar as a glimmer component for Fleetbase UI
roncodes
added a commit
that referenced
this pull request
Aug 18, 2026
Fixes the backtracking-rerender assertion recorded as DEFECTS.md #26, which the documented one-line fix (two-way to one-way bindings) did not clear — the binding style was the symptom, not the cause. Two things were wrong. Every handler mutated `this.translations` in place and then reassigned the same reference, writing to a tracked property the render was still consuming. And `{{#each-in}}` keyed the rows on the translation KEY, so typing in a key field destroyed the input and rebuilt it on the next render, mid-edit. The editor now holds `{ language: [{ id, key, value }] }` rows. A row's identity survives renaming its key, and every edit builds a new structure and assigns it once, so nothing writes to state that a render is reading. The fields are one-way and commit on `change`. `setDefaultKeys` no longer writes the defaults into the caller's own `@value` — it returns a new object. That was a side effect on the consumer's data, now pinned by a test. The public surface is unchanged: `@value` in, `@onChange(translations)` out, both in the `{ language: { key: value } }` shape, plus `@defaultKeys` and the label arguments. The internal `loadedTranslations` getter is gone; it was only read by this component's own template. Six tests added, covering what the old design could not express: the same input element survives a rename, a key can be renamed twice in a row, a key edit followed by a value edit reports both, rows edit independently, keys are underscored on commit, and the caller's object is never touched. 4946 tests pass, 0 skips. Coverage 93.71% statements / 89.21% branches / 97.18% functions / 94.11% lines.
roncodes
added a commit
that referenced
this pull request
Aug 25, 2026
DEFECTS #26: a @searchProvider result with children looks openable and does nothing. openSearchResult falls back to `[...this.currentStack, item]` when a result carries no path — which is every provider result — but currentStack is not stored: it is rebuilt each read by matching the view stack against @Items, breaking at the first entry it cannot find. A provider result is not in @Items, so the entry is dropped immediately and the navigator returns to its root. Logged rather than fixed: the two plausible shapes (require providers to supply a path, or let the stack hold items outside @Items) are not equivalent, and the second changes what "the current stack" means for the transition and breadcrumb code. The test pins the behaviour as it is and names the entry. Also covered: the portal falling back to document.body when the host app has mounted no #application-root-wormhole, and a rejection arriving from a query the user has already moved past — the failure path of the token check that the success path already had a test for. The ignores here needed real tracing rather than a guess. closeSearch's "no popover" guard cannot fire because every caller has already established the panel is open. openActiveSearchResult's `if (result)` cannot fail because the Enter arm that calls it returns early unless hasSearchResults. And both open- animation callbacks check a state that nothing can move on: closeSearch cancels the frame and clears the timer, and openSearch does the same before queueing another. Full suite: 5323 tests, 0 failures. 98.17 / 98.22 / 99.59 / 97.23.
roncodes
added a commit
that referenced
this pull request
Aug 28, 2026
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.