* Exploration of a virtuoso-powered emoji picker
moved to shared components
Fable generated
* fix pnpm lock
* format & fix some lint issues
* wrong import
* fix lint warning
* Fix off-by-one
and remove manual overflow adjustment: let's leave the default unless
it turns out to be necessary. Emoji should not take that long to load.
* Convert to functional component
* WIP: change to one big virtuoso scroller
* Change to use virtuoso's own onRangeChanged
and santitise category data and how it's passed around
* Convert Tabs to functional component
and put the focusing behaviour back with it just keeping track of
refs by itself.
* Absorb two line config file into main component
* Actually add the config to the main file
* Convert emoji to functional
Also make selected always defined and use useCallback.
* QuickReactions to functional component
* Non-default exports & doc
* Search to functional component
* Well it seems to work just fine now
* Use ref prop
* fix lockfile AGAIN
* lint
* Remove default export
* Remove some mx_ classnames and fix the inputRef
to make the arrow keys in the search box work (well, work as much as
they ever did).
* Remove last of the mx_ id / classnames
(except the one in the test)
* Use useMemo to memoize
* No need to export props interface (I think?)
and fix comment now we don't do the mutation stuff anymore
* Fix test
* Fix axe violations & add screenshots
* Avoid comparing dom snapshots in test
* Allow more before or after, just compare order of the ones present in both.
* Switch existing usages to new emoji picker
and kill the old one with fire
* Unused stuff
* Remove i18n strings
* Fix some tests
* Update screenshots
* Fix test
by removing the last of the weird memoized-but-mutated data structure
* Move the string somewhere more sensible than 'a11y'
* i18n lint
* Give the emojis IDs so aria-activedescendant works
* Fix more tests
* Add a small wrapper emoji picker component
This lets us easily memoize the recent emojis when the emoji picker is opened.
Also it saves a bit of boilerplate.
* Remove old emojipicker css
* Typos
Co-authored-by: David Langley <davidl@element.io>
* Use compound constants
* Rethemendex
* Use catalog version for emojibase
* Add comments
* More comments
* Fix comment
* More comments
* more comments (and make them uniform)
* More comments
* Fix pnpm lock again
* Another comment
* Apply button types to new version
* Add comment
* Disable screenshot
as per comment
---------
Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
* Add functionality to UIStore
- Make it possible to query if the window is currently being resized
- Emit WidthIncreased/WidthDecreased events
* Change resize behaviour of panel
So that the panel does not become smaller when the window is resized.
This is consistent with the old room-list design.
* Introduce a `CollapseHandler` object
This should be used by the collapse behaviours to collapse/expand the
panel. There's a good reason to not have the behaviours depend directly
on the react-resizable-panels API methods: We dont want the collapse/expand
calls to conflict with each other. See the comments in the code for more
information.
* Introduce a base class for collapse behaviour logic
Behaviours should extend this class to describe when the panel should
automatically collapse and expand.
* Add the window resize collapse behaviour
* Create a central file from which to export all behaviours
* Add a class to orchestrate the collapse behaviours
ResizerViewModel will only have a dependency on this class.
* Collapse panel on app start if necessary
For eg, if the app is started with a small window width, the panel should be
collapsed.
* Wire auto collapse code into the viewmodel
* Write jest tests
* Fix e2e tests
* Fix lint error
* Fix e2e test failures
* Expand the panel before taking screenshot
Fixes incorrect narrow screenshots in RTE.spec.ts and CIDER.spec.ts
* Make comments consistent
* Move tests from jest to vitest
* Fix lint errors
* Improve comment
* Remove variable
* Remove mock
* Fix comment formatting
* Remove border from roomlist container
The separator will act as the border so we no longer need the roomlist
border.
* Use pointer events to detect click event
Otherwise the onClick handler would run when you resize the panel.
* Support showing the border in separator
* Update tests
* Disable double click behaviour on separator
* Fix screenshot tests failing
* Rewrite Measured to be a functional component
* Add tests to cover narrow viewports
* lint
* breakpoint is optional
* Cleanup
* Provide default value
* Fixup
* fix two snaps
* Update screenshot
* and the other one
* unfake CIDER
* Update snaps AGAIN
* Remove global h2 css rule in favour of heading styles/components
* Use Compound Heading in shared-components
and forbid hX elements
* Use Compound Heading in settings
add back margin to some legacy headings
* Tweak some headings
* Update screenshots
* Update screenshots
* Update snapshots
* Tweak .gitignore
* Update snapshots
* Iterate
* Update screenshots
* Update screenshots
* Update screenshot
* Add `react-resizable-panels` library
* Implement a custom SeparatorView
* Add a `LeftResizablePanelView`
* Add a custom `GroupView`
* Export everything from shared-components
* Make it possible to track width/collapse state through settings
* Add a view model to drive the views
* Render views without disrupting the old room list
* Fix lint error
* Disable user interaction on collapsed panel
* Prevent widgets fron hijacking pointer events
* Expand to full width on separator click
* Separator should be shown when focused via keyboard
* Update tests
* Use data-attribute for hover
* Write stories for SeperatorView
* Write vite tests for SeparatorView
* Write tests for LeftResizablePanelView
* More tests
* Fix lint errors
* Fix flakey border on the roomlst
* Fix storybook axe violation
* Update snapshots
* Fix playwright tests
* Fix sonarcloud issues
* Use translated string
* Add better js-doc comments
* Rename `ResizerSnapshot` to `ResizerViewSnapshot`
* Externalize react-resizable-panels
* Link figma designs to stories
* Write playwright tests
* Update screenshots
* Fix lint errors
* Update more screenshots
* Update more screenshots
* Fix flaky toast test
* Update apps/web/playwright/e2e/crypto/toasts.spec.ts
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* Fix indentation
---------
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
mkdir apps/web/scripts
mv scripts/{cleanup.sh,ci_package.sh,copy-res.ts,deploy.py,package.sh} apps/web/scripts
And a couple of gitignore tweaks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>