* Add CI to detect stale vis screenshots
* Remove already installed `tree` command
* Remove workaround for vis silently adding missing screenshots in CI
* Fix stale screenshot detection
* Test that CI doesn't silently create new screenshots
* Discard changes to packages/shared-components/src/room/composer/Banner/Banner.stories.tsx
* Delete stale snapshots
* Fix flaky test `src/room/composer/Banner/Banner.stories.tsx > With Avatar Image`
it was previously loading an external (slow) image which was random (!) by design
Fixes https://github.com/element-hq/element-web/issues/33273
* Fix styling
* Iterate
* Update snapshot
* feat(sc): add new toast type for room list
* feat(sc): add section entries in room list item menu
* feat(rls): expose util functions
* feat: allows to tag room with custom sections
* feat(vm): add new Chat moved toast to room list vm
* feat(vm): add section selection to room list item vm
* feat(e2e): add tests for adding room in a custom section
* test(e2e): update existing screenshots
* chore: fix lint after merge
* chore: remove outline in test
* Commit design update
* Add figma links
* Check in other changes
* revert accidental change
* Iterative update
* linting n test fiddles
* linting
* Cleanup
* update snaps
* Move URL previews to new home
* Fix paths
* compress img
* Add back all the stories
* Improved rendering
* Fixup
* Update previews again
* lint
* update stories
* Update snaps again
* More screenshots
* Also these
* Update snaps
* include site name
* Update snaps again
* Use a scale so the images don't go blur
* update snaps again
* Update snaps
* remove mistaken playwright cfg
* update pw snaps
* update snap
* update previews
* Update with new designs
* Update screenshots
* feat: add way to create custom section in SC
* feat: disable custom section in vms
* chore: include design tokens icons in vitest config
* test: update screenshot
* chore: use one react import
* Init, refactoring and movement of TextualBody to shared components, adding stories, test and view
* migrate TextualBody to shared view + app viewmodel
* Update snapshots + prettier fix
* Fix Prettier
* added new tests to make coverage happy
* add comment to attachbodyRef function
* Fix: Remove event onkeydown and remove hardcoded mx css
* Update enums to const enums
* added comment on css to explain 9px
* Update comment
* Correcting comment, pushed too fast..
* Update Css To Fix (edited)
* Update snapshot to reflect css changes
* Fix emote into one liner
* Update snapshot
* feat: add unread status to section view
* feat: add unread tracking in room list section
* feat: populate rooms into section header vm
* test: add units for unread in section view model
* test(e2e): add unread tests
* 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
* Refactor MessageActionBar into MVVM ActionBarView
* Adding tooltips for menu items and correct i18n strings
* Layout changes
* Renaming some properties
* Rename property
* Create a first version of the view model and refactor media visibility logic
* Refactor view to take options and rections menu as optional properties
* Cleaner interface between view and view model
* Refactor view properties and replace Menu and MenuItem
* Bugfixes and switching to ActionBarView instead of MessageActionBar in element-web
* Avoid creating view models and render toolbar until it is actually shown
* Added unit and playwright tests and documented the view
* Added view model unit tests and updated snapshots of dependant tests
* Remove unused components and unnecessary css
* Remove unused language tags
* Fix for handling join-rules correctly
* Prettier
* Add handling of stale view model in async calls
* Prettier
* Split the element-web css into two different. One for legacy components and one for the ActionBarView
* Missing variables used for linting
* Fix for showing ActionBarView when using keyboard for navigation
* Handle visibility on context menu closing
* ThreadPanel uses the ActionBarView so restore css rule
* Fix for visibility of the ActionBarView in Thread panel
* Fix for ActionBarVuew visibility when closing right-click context menu and not still hovering
* Add roving index to function as a toolbar
* Adjust the RoomView test to send hover to the EventTile instead of the message text
* Fix SonarCloud issues
* Fix for SonarCloud issue
* Merge fix
* Rename mx_LegacyActionBar to mx_ThreadActionBar
* Added documentation and simplified join rules
* Generalize the ActionBarView and move logic to view model
* Add the four new buttons to the ActionBarView
* Update view model and tests to use the updated ActionBarView
* Refactor element-web to use ActionBarView
* Clean up styling in element-web
* Clean up and updating snaps and screenshots
* Added unit-tests for better coverage
* Moving ActionBarView to the correct folder in shared components
* Update snaps in element-web
* Better documentation in stories
* Merge fixes
* Updates after review comments
* Review comment fixes
* Added documentation to view models and updated snaps
* Hide button had the wrong label
* Replace createRef with useRef
* init MVideoBody to shared components, including test, stories and view
* fix prettier and other warnings
* move video message body to shared view + app viewmodel
* Fix prettier warnings and masking spinner for tests
* stabilize VideoBodyView screenshots with local media asset
* Disable spinner from changing image all the time
* Added mask over video spinner to prevent issues with new generated images on playwright tests
* Update prettier fix
* Update snapshot
* Add tests to cover different states of Video
* Update code to prevent the previous component Hack fix regarding jumps on the timeline.
* Update snapshot
* Update code to improve code quality for Sonar + update snapshot
* adde documentation snippets
* refactor: move m.video rendering into body factory
* docs: add tsdoc for video body view model
* docs: add thumbnail tsdoc for video body view model
* docs: add content-url tsdoc for video body view model
* docs: add dimensions tsdoc for video body view model
* docs: add aspect-ratio tsdoc for video body view model
* docs: add tsdoc for video body view state
* refactor: replace video body view state enum
* refactor: remove duplicate video body state init
* refactor: drop unused video body view state attribute
* Fix Prettier
* Update snapshot screenshot
* test: restore video story screenshot mask
* chore: refresh PR head
* Add mask to screenshot to pass CI tests
* test: narrow video story mask hook
* Fix easy Sonar warnings in video body components
* Move shared message body views into event-tile layout
* Move shared message body visual baselines
* Revert unrelated shared message body moves
* feat: add sections to RLSV3
* feat: add sections in vms
* feat: add room list section labs flag
* fix: wrong margin for room list item when in sections
* feat: hide favourites and low priority filters
* fix: crash when changing filter
* feat: support sticky room in sections
* test: update SC snapshot
* test: update SC screenshot
* test: update RLS tests
* test: add tests to RoomListSectionHeaderViewModel
* test: fix existing test in RoomListViewModel
* test: add sections tests for RoomListViewModel
* test: add e2e tests for sections
* fix: incorrect selected room when expanding/collasping a section
* fix: typo in `roomSkipList`
* feat: use one skip list with all filters instead of one list by tag
* chore: put back comment about `roomIndexInSection`
* chore: add missing `readonly`
* chore: add doc about possible undefined value for room item vm
* Give rooms with calls a proper accessible description
Besides improving accessibility, this makes it possible to check for the presence of a call indicator in the room list in Playwright tests.
* Make room list react to calls in a room, even when not connected to them
To use the results of CallStore.getRoom reactively, you need to listen for Call events, not ConnectedCalls events.
* Don't assume that every call starts off as a video call
If a Call object is created by way of someone starting a voice call, then of course the call's initial type needs to be 'voice'.
* Make room list items react to changes in call type
The type of a call may change over time; therefore room list items explicitly need to react to the changes.
* Update a call's type before notifying listeners of the change
If we notify listeners of a change in a call's type before actually making that change, the listeners will be working with glitched state. This would cause the room list to show the wrong call type in certain situations.
* Ignore the Vitest attachments directory
* refactoring and creation of shared-components for reductedBodyView
* move redacted message rendering to shared MVVM view
* Update snapshots + fix lint errors
* Remove MatrixClientPeg and use reguler react matrix client context
* Stop resyncing redacted body view models with mxEvent
* Fix redacted_because test fixtures for stricter event typing
* Simplify redacted body client access
* Watch timestamp setting in redacted body view model
* Refactor redacted and decryption failure body factories into MBodyFactory
* Prettier Fix
* Refactor FileBody into same pattern for consitancy
* 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>
* chore: rename snapshot, actions and vm according to MVVM doc
* doc: add naming conventions
* chore: fix UrlGroupView naming, folders and children
* chore: remove `Example` column
* refactor: rename `UrlPreviewGroupViewPreview` into `UrlPreview`
* feat: add section header
* refactor: remove index and role related to list box from RoomListItemView
* feat: add wrapper to RoomListItemView to handle different accessiblity pattern
* feat: add section support to VirtualizedRoomListView
* feat: add sections support to RoomListView
* test: add screenshot for sections header
* test: add/update screenshots for sections
* feat: force flat list on view model
This is an intermediary step before implementing sections in the vm. We
force the flat list but we use the underneath the view supporting
sections.
* test: update RoomListViewModel test
* test: fix breaking test
* chore: rename `getSectionViewModel` to `getSectionHeaderViewModel`
* chore: add missing `RoomListItemAccessibilityWrapper` export
* chore: merge `react` imports
* chore: simplify and add comment to `getItemKey` and `getHeaderKey`
* chore add comments to `getItemComponent` variants
* chore: fix typo in example doc
* Port over linkifyJS to shared-components.
* Drop rubbish
* update lock
* quickfix test
* drop group id
* Modernize tests
* Remove stories that aren't in use.
* Complete working version
* Add copyright
* tidy up
* update lock
* Update snaps
* update snap
* undo change
* remove unused
* More test updates
* fix typo
* fix margin on preview
* move margin block
* snapupdate
* prettier
* Port url preview logic to a view model.
* More fiddling with VM logic
* Note to self
* Refactor away into a shared component.
* Even more lovely lovely code that makes it look prettier
* translation cleanup
* Even more stuff that I need to fix yay
* Remove .last-run.json
* Update snaps
* Ensure we set showUrlPreview
* Cleanup tests
* lint + add png support
* Add a label
* Cleanup
* Add snaps
* Update snaps
* update playwright
* Refactors
* update snap
* Add missing snap
* Remove editing code (we check this in a better way in componentDidUpdate)
* Add README
* fix the one unused import
* Style shuffling
* Update vis tests
* Finally fix the tooltip
* Remove unused prop
* Add some padding
* fix lint issue
* Design improvements
* new screens
* Update snaps
* Fix CSS specificity
* Remove stale screenshot
* Rename function to match reality
* Port viewmodel tests to snapshots
* finish documenting types
* Stop being dangerous
* Use Linkify+decode for description
* Remove ability for VM to do linkifying.
* Port over linkifyJS to shared-components.
* Drop rubbish
* update lock
* quickfix test
* drop group id
* Modernize tests
* Remove stories that aren't in use.
* Complete working version
* Add copyright
* tidy up
* update lock
* Update snaps
* update snap
* undo change
* remove unused
* More test updates
* fix typo
* fix margin on preview
* move margin block
* snapupdate
* prettier
* cleanup a test mistake
* Fixup sonar issues
* Don't expose linkifyjs to applications, just provide helper functions.
* Add story for documentation.
* remove $
* Use a const
* typo
* cleanup var name
* remove console line
* Changes checkpoint
* Convert to context
* Revert unrelated change.
* more cleanup
* Add a test to cover ignoring incoming data elements
* Make tests happy
* Update tests for LinkedText
* Underlines!
* fix lock
* remove unused linkify packages
* import move
* Remove mod to remove underline
* undo
* fix snap
* another snapshot fix
* More cleanup
* Tidy up based on review.
* fix story
* Pass in args
* update snap
* cleanup
* use source image
* oops
* remove client peg
* Remove unused state
* tidy up code
* Ensure we update the preview when the event content may have changed.
* s/global/globalThis/
* Ensure we don't stretch images
* Update screenshots
* Cleanup
* Refactor MFileBody using MVVM and move to shared component
* Simplyfing rendering properties
* Create a first version of view model for the component
* Simplifying component properties and make it possible to override module css using data-* attributes
* Create a MBodyFactory in element-web and use it to render MFileBodyView from MessageEvent
* Use <MediaBody instead of <button to support legacy rendering
* Updated styling and comments
* Refactoring className from snapshot to component property
* Rename MFileBody* to FileBody*
* Rename MFileBody* to FileBody*
* Refactoring render branches to allow for displaying nothing
* Fix styling issues
* Fix lint errors
* Fix for css selectors in playwright tests
* Remove the MFileBody component and change all callers to use MBodyFactory:FileBodyView
* Remove unused strings in element-web
* Revert to render text in story iframes
* Fix for prettier error
* Fix playwright test css selectors
* Apply legacy styling in element-web
* Add legacy styling for mx_MFileBody
* Restore file
* Change from <div to <button
* Calculate span width ad update screenshots
* Remove width calculation and update snapshots
* Fix for letter-spacing and better content in story
* Updated playwright screenshots
* Updated snapshots
* Fixing Sonar errors/warnings
* Removed extra parentheses
* Changes after review
* Change border-radius to px and updated snapshots
* Fix typo in description
* And another typo fix
* Changes after review
* refactor: extract most of the logic from the virtualized list
The VirtualizedList component is renamed FlatVirtualizedList and most of
the logic is extracted. In order to prepare the introduction of the
GroupedVirtualizedList which will share most of the behaviour.
* refactor: use `FlatVirtualizedList` instead of `VirtualizedList`
* feat: add grouped virtualized list to shared components
* feat: add accessiblity helps for virtualized list
* test: use one test suite for the two virtualized lists
* test: update storybook screenshots
* feat: add keyboard navigation on header
* test: make a11y test pass
* chore: delete old screenshot
* doc: a11y docs to list stories
* chore: fix copyright
* Port over linkifyJS to shared-components.
* Drop rubbish
* update lock
* quickfix test
* drop group id
* Modernize tests
* Remove stories that aren't in use.
* Complete working version
* Add copyright
* tidy up
* update lock
* Update snaps
* update snap
* undo change
* remove unused
* More test updates
* fix typo
* fix margin on preview
* move margin block
* snapupdate
* prettier
* cleanup a test mistake
* Fixup sonar issues
* Don't expose linkifyjs to applications, just provide helper functions.
* Add story for documentation.
* remove $
* Use a const
* typo
* cleanup var name
* remove console line
* Changes checkpoint
* Convert to context
* Revert unrelated change.
* more cleanup
* Add a test to cover ignoring incoming data elements
* Make tests happy
* Update tests for LinkedText
* Underlines!
* fix lock
* remove unused linkify packages
* import move
* Remove mod to remove underline
* undo
* fix snap
* another snapshot fix
* Tidy up based on review.
* fix story
* Pass in args
* refactor: move pinned message badge into shared-components
* Update lint errors
* Fix for Vitest issue with CI on shared components
* Update related to the pr comments and requests
* Prettier Fix
* Update, remove view since it was just moved and not actually MVVMed
* Removed view suffix since it was only moved and not mvvmed
* Update snapshots
* Removal of unused screenshots
* Added Image that we need
* Refactor className? to component property in EncryptionEventView
* Refactor extraClassNames to default react className as component property for DecryptionFailureBodyView
* Refactor className to component property for MessageTimestampView
* Refactor className and children to component properties for ReactionsRowButton
* Refactor className to component property for DisambiguatedProfile
* Refactor className to a component property in DateSeparatorView
* Fix for lint errors and EncryptionEventView unsupported icon color
* EncryptionEventView fix for icon color css specificity/order
* Init shared component structure
* Storybook implementation
* Add snapshots of storybook examples
* ViewModel Creation + Implementation In EventTile.tsx
* Prettier
* Update HTML snapshot
* Add onhover pointer on bottons
* Added compound web tooltip
* Removed possible of undefined on label
* Update snapshots
* Update setters to use merge instead of updating full snapshot
* adapt view model test for setters change
* Actions should be passed to viewmodel fix
* replace ReactionsRowWrapper forceRender with explicit reaction state
* Update snapshot
* Refactor DateSeparator using MVVM and move to shared-components
* Add a few more stories, tests and screenshots
* Use the shared component and viewmodel in element-web
* Renaming custom content property an updating snapshots
* Fix lint errors and update snapshot after merge
* Change lifecycle handling for DateSeparatoreViewModel in components where manual handling is preferrable over wrapper component.
* Move context menu from viewmodel to shared components - step 1
* Create a jump to date picker component in shared components
* Add tests for coverage and fix layout issues and roving indexes
* Make element-web use the new component
* Simplify context menu and adjusting tests
* The HTMLExport now render shared components and need a I18nContext.Provider
* Updating unit tests for context menu
* Changed to {translate: _t} to let scripts pick up translations
* Fix lint issue and updating screenshots after merge
* Update snaps for element web components
* Renaming MVVM view components with suffix View.
* Fixing problem with input date calendar icon and system dark theme
* Changed the rendering of the menu and added a separate button component
* Handle input control with useRef in onKeyDown
* Updating DateSeparator snapshots on unit tests
* Updating layout after compound Menu got a className property
* Move files to new subfolder after merge
* Updated snapshot after merge
* Updating lock file
* Updates to styling from PR review
* Updates to focus/blur functionality
* Fixed tabbing and export documentation to stories
* Updated snapshots
---------
Co-authored-by: Zack <zazi21@student.bth.se>
* Update critical gradient for room status bar
As per design request, this has been updated to be much more subtle
https://github.com/element-hq/compound-design-tokens/pull/232
* update shared-component
* Cleanup
* Update snaps
* description fix color
* More cleanup
* Use the correct border color
* new snaps
* fix border, button placement, fonts etc
* update lock
* Update status bar
* Update playwright snaps
* Update snap icon
* Update other banners
* update snap
* fixup
* fix: in room list item, replace bottom padding by top and bottom
Outline focus is not aligned when only using a padding bottom. Replace
by a padding-top and a padding-bottom.
The padding top is not added on the first item and the padding bottom
neither on the last item
* test: update snapshot
* test: update storybook screenshot
* test: update screenshot
* chore: use css var instead of duplicating the logic
* chore: add new stories for first and last item case
* test: add new screenshots following the new stories
* feat: add visual feedback of selection in `VirtualizedList` story
* fix: keyboard navigation when focused element is no longer in the dom
* fix: selection delay when the list is scrolled
* fix: room list item scroll issue
Avoid to use margin https://virtuoso.dev/react-virtuoso/#caveats
* test: add tests
* test(e2e): update snapshots
* test: update room list item screenshot
* Create a MessageTimestampView in shared components
* Switching to use shared component and view model in element-web
* Add .mx_MessageTimestamp tp _common.pcss since it is used extensively in element-web
* Added comments to view model
* Updating after Add options for consistent screenshots
* Moved rendering of late icon to EventTile
* Update shared component snaps
* Added I18nContext.Provider to Modal.tsx and HtmlExport.tsx to make them work with shared components
* Avoid circular dependencies for ModuleApi
* Adjust role and wire handlers in view model
* Change to role="link"
* Revert I18nContext.Provider changes
* Updated snapshot
* Provide I18nContext for shared-components used inside dialogs and html-export rendered in a separate root.
* Add patch for react-sdk-module-api to shared components
* Add setProps to MessageTimeViewModel and useEffect on wrappers
* Added more tests to improve coverage
* Changes after PR review
* Use specific setters in the viewmodel more relating to the business logic.
* Remove unused CSS properties
* New snapshot after merge
* Removed aria-hidden logic and display tooltips in stories
* Remove await for toolitp in HasInhibitTooltip story
* Add screenshots with visible tooltips
* Fixes after merge and review comments
* Updated snapshots for unit tests
* Removed one test since tooltips are not rendered to snapshots
* fix(sc): make room list item scale with large font
* fix: align room avatar view when using large font
* test(sc): add story for large font
* test(sc): update snapshots
* test(sc): add story with zoom
* Refactor EncryptionEvent using MVVM and move to shared-components
* Added viewmodel and unit tests for bothe viewmodel and component.
* Added test for custom-class
* Update EventTileFactory and RoomView to use the new component
* Clean up unused language strings from element-web
* Changed how the view model is created
* Make sure the initial snapshot mimics the previous component
* Optimizing viewmodel initial snapshot and update
* Updated playwright screenshots
* fix(sc): use correct icon size for room list icons
* feat(sc): implement new selection and hover design for room list item
* feat(sc): set room list item height
* chore(sc): add story for long room and message preview
* fix(sc): use correct letter-spacing for room list item
* feat(sc): use new padding for room list filters
* feat(sc): update room list header style
* test(sc): update unit tests
* test(sc): update visual tests
* test: update playwright screenshots
* doc: update figma link in item story
* test: fix sliding sync test
The notification pop up was at the top of the room list filters (less
top padding) and it was unable to click on the People filter.
* chore: fix `VirtuaalizedRoomListView` comment
* test: update playwright screenshot
* fix(sc): add ellipsis on room name
* Refactoring of DisambiguatedProfile into shared components
* correct values and refactoring
* Add username color classes to Storybook and clean up DisambiguatedProfile stories
* Refactor DisambiguatedProfileView to use class component and enhance props structure
* Refactor DisambiguatedProfile components to use member object and enhance props structure
* Update copyright year to 2026 and adjust the tests to fit the correct memberinfro interface
* Add DisambiguatedProfileViewModel class
* Refactor DisambiguatedProfileViewModel to use member object and the rest of the props
* Refactor SenderProfile to use DisambiguatedProfileViewModel and update DisambiguatedProfile styles
* Refactor DisambiguatedProfileView to enhance interface documentation
* Refactor DisambiguatedProfileView to use CSS modules for styling
* Updated css + tests to fit the new changes
* Update of the test snap to fit the current tests
* Adjusted RoomMemberTitleView and SenderProfile to use the new viewmodel, removed the old component.
* Implemented new viewmodel test for DisambiguatedProfileViewModel
* Update copyright text
* update css class names
* update to correct snapshot after css name changes.
* Apply suggestion from @florianduros
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Moved logic to viewmodel instead of having it in the view. Removed unessecery functions and css.
* removed unessecery file that I copied from root folder, this is no longed needed as I use the root file instead in the viewmodel
* Better Formatting
* Fix issues after merging develop
* FIxed issues with eslint
* Added Visible, non-interactive elements with click handlers must have at least one keyboard listener from eslint docs
* Updated snapshot the fit the latest update with eslint button requirment
* Update snapshot screens for new tests.
* Update tests to reflect snapshots
* Update snapshot due of outdated CSS module classes
* Add useEffect to call setProps on the DisambiguatedProfileViewModel
when props change, ensuring the view updates with the correct display
name. Update LayoutSwitcher snapshot for new CSS classes.
* Fix Playwright editing tests by adding exact match for Edit button selector
The DisambiguatedProfile refactoring added role="button" to the component,
causing the selector { name: "Edit" } to match both the user "Edith" and
the actual Edit button.
* Fix ForwardDialog location tests for async hook rendering The SenderProfile component now uses hooks that trigger async state updates.
* Fix SenderProfile useEffect to only update changeable props
* Added letter spacing
* Added ClassName prop
* Update snapshot
* Update letter-spacing
* Update snapshot screenshots
* Update Snapshots
* Update snapshot
* Removal of letter spacing to test CI
* Apply suggestion from @florianduros
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Added closing brackets + added back letter-spacing
* Update snapshots
* Update snapshot
* Update span to correctly apply to the CI tests, it wasn't possible to use classname as a prop
* Update snapshot
* Added comment to explain the span classNames
* DisambiguatedProfileViewModel.setProps to runtime-changing props
* replace DisambiguatedProfileViewModel setProps with explicit setters and update call sites
* Update Setters
* Prettier FIx
* Update Setters
* update DisambiguatedProfileViewModel setters and tests
* Update SenderProfile to show connect display name
* clone snapshot in setters to trigger reactive updates
* use snapshot.merge in DisambiguatedProfileViewModel setters
* emove duplicated logic in DisambiguatedProfileViewModel
* Change snapshot name
* Update viewmodel
* Updated Tests
* typo
* Update src/viewmodels/profile/DisambiguatedProfileViewModel.ts
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Removal of unused function
* Update snapshots
* Update tests to pass coverage
* Update Eslint
---------
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>