-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/allow annotation interactions while loading #56
Feature/allow annotation interactions while loading #56
Conversation
@@ -84,6 +85,9 @@ export default function DirectoryTree(props: FileListProps) { | |||
aria-multiselectable="true" | |||
id={Tutorial.FILE_LIST_ID} | |||
> | |||
{!error && (!content || (Array.isArray(content) && !content.length)) && ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it might be useful to pretty print the filters applied in the empty file message. It would duplicate the UI components that display the filters themselves, but may be useful to those unfamiliar with the app. What do you think? We could get this information from the fileSet
variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense. So something like "No files found with {list of comma-separated human readable filters}" or "Filters applied: {ul of filters}"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I think that would be perfect, probably including the hierarchy too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in most recent commit
import AnnotationFilter from "../AnnotationSidebar/AnnotationFilter"; | ||
|
||
import styles from "./FilterMedallion.module.css"; | ||
|
||
export interface Filter { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved this interface out into ../entity/FileFilter since it gets used a couple times
The unit tests for each of the packages can also be run independently, using `npm run test:core`, `npm run test:desktop`, | ||
or `npm run test:web`, respectively. | ||
|
||
To run the linter, use `npm run lint`, and for typechecking, use `npm run typeCheck`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
text-decoration: none; | ||
} | ||
|
||
.filter:not(:last-child):after { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh neat pattern!
}).filter((filter) => filter.displayValue !== undefined); | ||
return groupBy(filters, (filter) => filter.name); | ||
} | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the createSelector solution! The only useMemo approach that I have thought of for this would be either to move the useMemo call up in the component hierarchy to a common ancestor of all the places you want to use it. This seems preferable.
Description
This allows users to continue to interact with annotations in the 'Available Annotations' list while they are loading.
disabled
styling for loading itemsFileList
component so that it can be re-used for theDirectoryTree
:(
so removed it from the unit test, can definitely add it back inTesting
Tested manually on local build, on site and off site (with VPN)
closes #51