fix: auto-refresh c-display distance formatting - #734
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move the adaptive refresh timer and tick state into a dedicated CDistanceDisplay wrapper (mirroring CPasswordDisplay) so the timer/reactivity overhead only applies to date displays using distance formatting, not every c-display instance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the hardcoded candidate-delay probe with a binary search over formatDistance, eliminating the magic delay list and landing the refresh exactly on the change boundary (to 1s) instead of overshooting. Cap the search at 1 hour: minute/hour buckets change at most hourly so they're still caught on time, while far-off dates merely re-render hourly at negligible cost. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
c-displaysupported distance formatting (for example:format="{ distance: true }") but did not update itself over time, so relative text like "less than a minute ago" became stale unless parent components manually forced rerenders. This change makes distance displays self-updating inc-displayso consumers do not need component-specific timer workarounds.What changed
c-displayfor date distance formatting by checking when the renderedformatDistance(...)string would next change, then scheduling a one-shot update at that boundary.Dateinstances; if the value is not aDate, adaptive refresh is skipped.setIntervalrerender logic fromc-admin-editorautosave UI because the sharedc-displaybehavior now covers it.c-displaybehavior.Notes for reviewers