@furystack/shades-common-components 13.4.0 → 13.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/esm/components/alert.d.ts.map +1 -1
  3. package/esm/components/alert.js +7 -6
  4. package/esm/components/alert.js.map +1 -1
  5. package/esm/components/cache-view.spec.js +171 -170
  6. package/esm/components/cache-view.spec.js.map +1 -1
  7. package/esm/components/command-palette/command-palette-suggestion-list.js +1 -1
  8. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  9. package/esm/components/inputs/input.d.ts.map +1 -1
  10. package/esm/components/inputs/input.js +2 -0
  11. package/esm/components/inputs/input.js.map +1 -1
  12. package/esm/components/inputs/select.d.ts.map +1 -1
  13. package/esm/components/inputs/select.js +3 -1
  14. package/esm/components/inputs/select.js.map +1 -1
  15. package/esm/components/result.d.ts +4 -2
  16. package/esm/components/result.d.ts.map +1 -1
  17. package/esm/components/result.js +11 -10
  18. package/esm/components/result.js.map +1 -1
  19. package/esm/components/suggest/index.d.ts.map +1 -1
  20. package/esm/components/suggest/index.js +7 -3
  21. package/esm/components/suggest/index.js.map +1 -1
  22. package/esm/components/tree/tree.d.ts.map +1 -1
  23. package/esm/components/tree/tree.js +1 -0
  24. package/esm/components/tree/tree.js.map +1 -1
  25. package/package.json +6 -6
  26. package/src/components/alert.tsx +9 -6
  27. package/src/components/cache-view.spec.tsx +235 -219
  28. package/src/components/command-palette/command-palette-suggestion-list.tsx +1 -1
  29. package/src/components/inputs/input.tsx +2 -0
  30. package/src/components/inputs/select.tsx +3 -1
  31. package/src/components/result.tsx +17 -10
  32. package/src/components/suggest/index.tsx +18 -15
  33. package/src/components/tree/tree.tsx +1 -0
@@ -83,21 +83,23 @@ export const Suggest: <T>(props: SuggestProps<T>, children: ChildrenList) => JSX
83
83
  useHostProps({
84
84
  'data-opened': isOpened ? '' : undefined,
85
85
  })
86
- manager.isLoading.subscribe((isLoading) => {
87
- const loader = loaderRef.current
88
- if (!loader) return
89
- if (isLoading) {
90
- void promisifyAnimation(loader, [{ opacity: 0 }, { opacity: 1 }], {
91
- duration: 100,
92
- fill: 'forwards',
93
- })
94
- } else {
95
- void promisifyAnimation(loader, [{ opacity: 1 }, { opacity: 0 }], {
96
- duration: 100,
97
- fill: 'forwards',
98
- })
99
- }
100
- })
86
+ useDisposable('isLoadingSubscription', () =>
87
+ manager.isLoading.subscribe((isLoading) => {
88
+ const loader = loaderRef.current
89
+ if (!loader) return
90
+ if (isLoading) {
91
+ void promisifyAnimation(loader, [{ opacity: 0 }, { opacity: 1 }], {
92
+ duration: 100,
93
+ fill: 'forwards',
94
+ })
95
+ } else {
96
+ void promisifyAnimation(loader, [{ opacity: 1 }, { opacity: 0 }], {
97
+ duration: 100,
98
+ fill: 'forwards',
99
+ })
100
+ }
101
+ }),
102
+ )
101
103
  useDisposable('onSelectSuggestion', () =>
102
104
  manager.subscribe('onSelectSuggestion', props.onSelectSuggestion as (entry: unknown) => void),
103
105
  )
@@ -133,6 +135,7 @@ export const Suggest: <T>(props: SuggestProps<T>, children: ChildrenList) => JSX
133
135
  <div className="post-controls">
134
136
  <span ref={loaderRef} style={{ display: 'inline-flex' }}>
135
137
  <Loader
138
+ // eslint-disable-next-line furystack/no-direct-get-value-in-render -- Initial opacity only; animated transitions handled by isLoadingSubscription via DOM
136
139
  style={{ width: '20px', height: '20px', opacity: manager.isLoading.getValue() ? '1' : '0' }}
137
140
  delay={0}
138
141
  borderWidth={4}
@@ -89,6 +89,7 @@ export const Tree: <T>(props: TreeProps<T>, children: ChildrenList) => JSX.Eleme
89
89
 
90
90
  const [flattenedNodes] = useObservable('flattenedNodes', props.treeService.flattenedNodes)
91
91
 
92
+ // eslint-disable-next-line furystack/require-use-observable-for-render -- Used as persistent ref, not reactive state; read and written synchronously in same render cycle
92
93
  const previousItemsRef = useDisposable('previousTreeItems', () => new ObservableValue<Set<unknown>>(new Set()))
93
94
  const previousItems = previousItemsRef.getValue()
94
95
  const currentItems = new Set<unknown>(flattenedNodes.map((n) => n.item))