So that you can have custom watchables that have very specific
behaviour, think `class NameWatchable extends Watchable`. Useful to have
access to `listeners` when you do this.
* Remove vm related code from element-web/src
* Add and export view model code from package
* Update imports
* Rewrite vm tests using vitest
* Add github action to run vm tests
* Fix lint errors
* Mvoe tests over to jest
* Try fixing code coverage
* Second attempt at fixing code coverage
* Move shared components to a packages/ directory
so they can be publish more sensibly
* Iterate towards split out shared-components module
* Move shared component source into src/ subdir
* Fix up imports
* Include shared components in babel-ing (again)
* Remove now unused dependencies
* Update import in storybook preview
* ...except of course they aren't unused
if we import the shared components by source
* Ignore shared components deps
* Add shared-components to i18n paths
and upgrade web-i18n to version that supports doing so
* Move storybook stuff to shared-components
* Seems we don't need this anymore...
* Remove unused deps
and remove storybook plugin from eslint
* Presumably working-directory is only valid on run steps
* Ignore dep & run prettier
* Prettier on knips.ts
* Hopefully run in right dir
* Remember how to software write
* Okay... how about THIS way?
* Oh right, they were git ignored. Sigh.
* Add concurrently
* Ignore in knip
* Better?
* Paaaaaaaackageeeeeeees
* More packages
* Move playwright snapshots
* Still need a custom snapshots dir
* Build shared components in their separate package
Port https://github.com/element-hq/element-web/pull/30963
to https://github.com/element-hq/element-web/pull/30962
* Add prepare script
* try making it a postinstall
* no, this probably does want to be prepare
postinstall doesn't really make sense since you would not have the
dev dependencies at that point
* Add workflow to publish shared components
* Put in the namespace
* Add eslint back
* Oh, now knip sees them
* Fix another import
* Don't lint shared-components with everything else
Okay, eslint & tsconfig are tied too closely for this to work and
running tsc on the shared components will need its deps installing
* Maybe lint shared components
please?
* Not quite
* Fix name, add main, move patch-package to dependencies
Although the only patched package is a dev dependency, but the postinstall
will fail if patch-package isn't there.
* Switch to npm for publishing
Mostly because knip seems to this that yarn publish doesn't exist,
although actually it seems super confused about versioning so let's
just skip it.
* Also hopefully enable provenance
because why not
* Maybe get exports right
* Add richlist
* Yeah, of course the keys are ordered
why would the keys not be ordered
* Build web resources first
Otherwise yarn prepare won't work
* Fix exports
and add web-i18n as a dep
* prettier
* build res for static analysis
* more build:res
* ViewModel is only an interface
so export type
* Prettier
* Bump to 5
as I'll do at least one test with the publish action
* Move shared components to a packages/ directory
so they can be publish more sensibly
* Iterate towards split out shared-components module
* Move shared component source into src/ subdir
* Fix up imports
* Include shared components in babel-ing (again)
* Remove now unused dependencies
* Update import in storybook preview
* ...except of course they aren't unused
if we import the shared components by source
* Ignore shared components deps
* Add shared-components to i18n paths
and upgrade web-i18n to version that supports doing so
* Move storybook stuff to shared-components
* Seems we don't need this anymore...
* Remove unused deps
and remove storybook plugin from eslint
* Presumably working-directory is only valid on run steps
* Ignore dep & run prettier
* Prettier on knips.ts
* Hopefully run in right dir
* Remember how to software write
* Okay... how about THIS way?
* Oh right, they were git ignored. Sigh.
* Add concurrently
* Ignore in knip
* Better?
* Paaaaaaaackageeeeeeees
* More packages
* Move playwright snapshots
* Still need a custom snapshots dir
* Add eslint back
* Oh, now knip sees them
* Fix another import
* Don't lint shared-components with everything else
Okay, eslint & tsconfig are tied too closely for this to work and
running tsc on the shared components will need its deps installing
* Maybe lint shared components
please?
* Not quite
* Remove storybook again
Re-check if it does work without it
* Remove storybook eslint plugin
as we're not linting storybook here anymore
* Remove this too
* We do need it here though
Sometimes it's useful to be able to use two separate Element-Web instances, in
isolated browsers. This patch adds a utility method which creates such an
instance.
This just takes the innards of the `pageWithCredentials` fixture and makes it
reusable in contexts outside the fixture. (This can be useful if you want to
use Element with an account other than the default provided by the
`credentials` fixture.)
`Credentials` is used to record the access token etc once we log in a or
register a user. An access token isn't much use to you unless you know where to
send it, so this patch addes a new field, `homeserverUrl`, which contains
the base public URL for the homeserver.
...with somewhat placeholder names as they're the best I can think of right now:
* 'Extras': To add new bits of UI to places (specifically the space panel)
* 'Builtins': For modules to render components that are part of Element Web
* 'Navigation': For modules to add paths to the URL router
In this case, storybook screenshots, but this keeps it so this script
doesnt know about storybook itself (we can move the actual storybook
specific code to here if we standardise on it more).