Skip to content

Commit fb4fee8

Browse files
fix: tags loading (#1784)
1 parent 0120da0 commit fb4fee8

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

webapp/javascript/components/TagsBar.module.css

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.loadingWrapper {
2+
display: flex;
3+
height: 80px;
4+
align-items: center;
5+
justify-content: center;
6+
}

webapp/javascript/components/TagsBar.tsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import { Query, brandQuery } from '@webapp/models/query';
1111
import Input from '@webapp/ui/Input';
1212
import { appendLabelToQuery } from '@webapp/util/query';
1313
import QueryInput from '@webapp/components/QueryInput/QueryInput';
14-
14+
import LoadingSpinner from '@webapp/ui/LoadingSpinner';
15+
import styles from './TagsBar.module.scss';
1516
interface TagsBarProps {
1617
/** callback for when a label is selected */
1718
onSelectedLabel: (label: string, query: Query) => void;
@@ -185,17 +186,28 @@ function LabelsSubmenu({
185186
};
186187

187188
const Items = Object.entries(tags).map(([tag, tagValues]) => {
189+
const onChange = (open: boolean) => {
190+
if (open && tagValues.type !== 'loaded') {
191+
onSelectedLabel(tag);
192+
}
193+
};
194+
195+
const values =
196+
tagValues.type === 'loaded' ? (
197+
<MenuGroup takeOverflow>{GetTagValues(tag, tagValues)}</MenuGroup>
198+
) : (
199+
<div className={styles.loadingWrapper}>
200+
<LoadingSpinner />
201+
</div>
202+
);
203+
188204
return (
189205
<SubMenu
190206
key={tag}
191207
overflow="auto"
192208
position="initial"
193-
onChange={(open) => {
194-
// we are opening the menu for the first time
195-
if (open && tagValues.type !== 'loaded') {
196-
onSelectedLabel(tag);
197-
}
198-
}}
209+
onChange={() => onChange(true)}
210+
onMenuChange={({ open }) => onChange(open)}
199211
label={() => (
200212
<span
201213
className="tag-content"
@@ -207,7 +219,7 @@ function LabelsSubmenu({
207219
)}
208220
>
209221
{GetFilter(tag)}
210-
<MenuGroup takeOverflow>{GetTagValues(tag, tagValues)}</MenuGroup>
222+
{values}
211223
</SubMenu>
212224
);
213225
});

0 commit comments

Comments
 (0)