Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
245 commits
Select commit Hold shift + click to select a range
a03dc92
docs: rename ubiquitous language glossary to CONTEXT and add message …
diegolmello Jun 26, 2026
6a8682c
perf: memoize @json model fields
diegolmello Jun 26, 2026
e78bf01
merge: PR #7450 docs rename UBIQUITOUS_LANGUAGE.md -> CONTEXT.md
diegolmello Jun 29, 2026
da76a6a
merge: PR #7451 perf memoize @json model fields
diegolmello Jun 29, 2026
b2709f2
feat: add reactive useMessage snapshot hook (NATIVE-1347)
diegolmello Jun 29, 2026
0db07c7
feat: migrate Message row container to function component (NATIVE-1348)
diegolmello Jun 29, 2026
1209090
perf: move Message interaction state to a per-Room store (NATIVE-1349)
diegolmello Jun 29, 2026
45ea86d
refactor: narrow Message component props contract (NATIVE-1350)
diegolmello Jun 29, 2026
c33f71d
refactor: annotate message presentational layers for React Compiler (…
diegolmello Jun 29, 2026
7738cc3
refactor: remove dead RoomView message state (NATIVE-1352)
diegolmello Jun 29, 2026
d8c1881
fix: prevent quote attachment loss under concurrent decryption
diegolmello Jun 30, 2026
9387cbc
refactor: remove unused useInteractionApi export
diegolmello Jun 30, 2026
50e3a44
fix: harden message row reactivity and correct memo/link/translation …
diegolmello Jun 30, 2026
ad71bdd
refactor: drop redundant React.memo from compiled message subtree
diegolmello Jun 30, 2026
425a635
refactor: replace useMessage snapshot hook with per-message store
diegolmello Jul 1, 2026
abaf4c5
refactor: make message header grouping reactive via previous-record s…
diegolmello Jul 1, 2026
6f3682d
test: refresh time-drifted Timestamp story snapshot
diegolmello Jul 1, 2026
1f045e6
feat: add per-instance MessageRoomStore and provider (NATIVE-1376)
diegolmello Jul 1, 2026
39167bd
feat: add per-message data selectors for translate/id/replies (NATIVE…
diegolmello Jul 1, 2026
854e457
test: shared message render helper wiring MessageRoomProvider (NATIVE…
diegolmello Jul 1, 2026
263729b
refactor: read fetchThreadName via room-store selector in RepliedThre…
diegolmello Jul 1, 2026
1bc61ac
refactor: read grouping/thread/translate config via room store in Mes…
diegolmello Jul 1, 2026
8e7ce17
refactor: read stable message fields via room-store selectors in leaf…
diegolmello Jul 1, 2026
2e91b79
refactor: read stable fields via room/message selectors in attachment…
diegolmello Jul 1, 2026
c49a81b
fix: wrap forwarded-message preview in MessageRoomProvider (NATIVE-1376)
diegolmello Jul 1, 2026
dac3e90
refactor: read blockAction and reply fields via selectors (NATIVE-1376)
diegolmello Jul 1, 2026
6010df4
refactor: add room-store fields for message row action handlers (NATI…
diegolmello Jul 1, 2026
6dedc8c
refactor: add per-message store fields and composite press hooks (NAT…
diegolmello Jul 1, 2026
542d982
refactor: migrate message row-action consumers to store selectors (NA…
diegolmello Jul 1, 2026
3118d50
refactor: collapse MessageContainerInner and migrate press handlers t…
diegolmello Jul 1, 2026
66964e0
refactor: drop dead theme prop from the message container (NATIVE-1376)
diegolmello Jul 1, 2026
4059a49
refactor: delete MessageContext and its inert provider (NATIVE-1376)
diegolmello Jul 1, 2026
f9ab6a6
refactor: drop dead handler props from the message container interfac…
diegolmello Jul 1, 2026
4ddd704
refactor: remove unused message room theme slice (NATIVE-1376)
diegolmello Jul 1, 2026
a3fe56f
refactor: default getCustomEmoji consistently in message components (…
diegolmello Jul 1, 2026
be3b34a
fix: provide message context to UIKit modal image blocks (NATIVE-1376)
diegolmello Jul 1, 2026
4708c13
fix: seed rid in message providers for the files and search views (NA…
diegolmello Jul 2, 2026
304b241
refactor: read rid from the room store in the blocks leaf (NATIVE-1385)
diegolmello Jul 2, 2026
d3c448d
refactor: read broadcast from the room store in the broadcast leaf (N…
diegolmello Jul 2, 2026
dda147c
refactor: read archived from the room store in the message touchable …
diegolmello Jul 2, 2026
80bda4e
refactor: read isThreadRoom from the room store in content and thread…
diegolmello Jul 2, 2026
6110f85
refactor: read autoTranslateLanguage from the room store where needed…
diegolmello Jul 2, 2026
c8cfc84
refactor: read the display-name setting directly in message leaves (N…
diegolmello Jul 2, 2026
96c8d7c
test: drop vestigial autoTranslateLanguage args from accessibility-la…
diegolmello Jul 2, 2026
8330912
refactor: add timeFormat to the message room store (NATIVE-1385)
diegolmello Jul 2, 2026
7f5bffd
refactor: seed timeFormat in the message room providers (NATIVE-1385)
diegolmello Jul 2, 2026
4ca8a76
refactor: read timeFormat from the room store in the message leaves (…
diegolmello Jul 2, 2026
a7a8bc7
refactor: read attachments from the store in the quote and attachment…
diegolmello Jul 2, 2026
941c090
refactor: drop dead argument interfaces from the urls and reactions l…
diegolmello Jul 2, 2026
85cdf40
refactor: read tmid from the thread store in the content leaf (NATIVE…
diegolmello Jul 2, 2026
5e76409
refactor: add isReadReceiptEnabled to the message room store (NATIVE-…
diegolmello Jul 3, 2026
4de1b09
refactor: read isReadReceiptEnabled from the room store in the messag…
diegolmello Jul 3, 2026
5ae9832
refactor: lift the ignored flag into the message store (NATIVE-1385)
diegolmello Jul 3, 2026
9c4386e
refactor: drop stale reusable-button todos from message components (N…
diegolmello Jul 3, 2026
e404870
refactor: drop manual memo and tighten ts-ignore notes in the message…
diegolmello Jul 3, 2026
47fdf5f
refactor: make Quote and Attachments pure prop-driven
diegolmello Jul 3, 2026
0607227
fix: default ignoredSeed in the message store factory
diegolmello Jul 3, 2026
f05a225
fix: restore message-link jump in SearchMessagesView
diegolmello Jul 3, 2026
430d920
refactor: remove dead isBeingEdited and small props from Message
diegolmello Jul 3, 2026
2f00bd2
refactor: correct MessageRoomStore mirroring comment
diegolmello Jul 3, 2026
5ce3f4b
test: cover ignored-message reveal, interaction fallback, room-store …
diegolmello Jul 3, 2026
273326b
refactor: reorganize the message module into components, stores, test…
diegolmello Jul 3, 2026
b503abd
refactor: remove reducible props from message leaves (NATIVE-1394)
diegolmello Jul 3, 2026
5d687aa
refactor: carry the ignored seed in message context (NATIVE-1395)
diegolmello Jul 3, 2026
ff9f162
test: add snapshot-oracle stories for message leaves (NATIVE-1396)
diegolmello Jul 3, 2026
715c48a
test: add unit tests for logic-bearing message units (NATIVE-1397)
diegolmello Jul 3, 2026
7a058b1
refactor: tighten message module TypeScript types
diegolmello Jul 3, 2026
00e9bbe
refactor: replace useMessagePress hand-rolled debounce with useDebounce
diegolmello Jul 3, 2026
2a82113
refactor: mechanical convention cleanup in message module
diegolmello Jul 3, 2026
ec77896
refactor: decompose message Content into per-branch leaves
diegolmello Jul 3, 2026
3aa1092
refactor: decompose message Message.tsx into per-branch renderers
diegolmello Jul 3, 2026
dbef733
feat: add useCustomEmoji hook and migrate Preview to it
diegolmello Jul 3, 2026
cfad92a
refactor: break Message/MessageInner import cycle and narrow author r…
diegolmello Jul 3, 2026
6be3190
refactor: retire ROOM_STATE_KEYS and pickMessageRoomState test picker
diegolmello Jul 3, 2026
a01f1f5
refactor: retire getCustomEmoji room-store field for useCustomEmoji hook
diegolmello Jul 3, 2026
4af3c80
refactor: remove dead getCustomEmoji methods from message list views
diegolmello Jul 3, 2026
49ecae7
refactor: add explicit deps to MessageStore mirror effect, document M…
diegolmello Jul 3, 2026
e84f436
perf: memoize returned closures from useMessagePress/useMessageLongPress
diegolmello Jul 6, 2026
541e85b
perf: de-churn RoomView on incoming messages
diegolmello Jul 6, 2026
a3e2898
fix: re-hide a revealed ignored message when its ignore state changes
diegolmello Jul 6, 2026
cfc0e5a
fix: key Quote reply list by attachment identity, not array index
diegolmello Jul 6, 2026
233b131
fix: derive RepliedThread display in render, fetch on real inputs
diegolmello Jul 6, 2026
9e11259
refactor: drive useMediaAutoDownload status via an event reducer
diegolmello Jul 6, 2026
529e69b
refactor: split MessageRoomProvider and diff-guard the store mirror
diegolmello Jul 6, 2026
061658c
fix: narrow tmid before fetchThreadName in RepliedThread effect
diegolmello Jul 6, 2026
3eec1c1
refactor: model RoomView interaction state as a discriminated union
diegolmello Jul 6, 2026
722f0d4
fix: guard RepliedThread fetch against stale writes
diegolmello Jul 6, 2026
67a6de9
merge: managing-state fixes (NATIVE-22 findings 001-006)
diegolmello Jul 6, 2026
dbac499
refactor: move Attachments unit tests into components/__tests__ (NATI…
diegolmello Jul 6, 2026
ca23750
refactor: move Attachments stories into components/stories and regist…
diegolmello Jul 6, 2026
06e966b
refactor: flatten CollapsibleQuote and OverlayComponent to single-fil…
diegolmello Jul 6, 2026
00027bc
refactor: retire RoomView getCustomEmoji in favor of useCustomEmoji i…
diegolmello Jul 7, 2026
0a3d98f
refactor: dedupe TMessageAction into definitions (NATIVE-22)
diegolmello Jul 7, 2026
ce3d8ee
refactor: rename useIsInfo to useIsInfoMessage returning boolean (NAT…
diegolmello Jul 7, 2026
4c906ea
refactor: pass isHeader into MessageInner instead of re-reading group…
diegolmello Jul 7, 2026
81760b8
fix: remove self-assignment in CollapsibleQuote color override (NATIV…
diegolmello Jul 7, 2026
827dc4d
refactor: use colors from useTheme instead of themes[theme] in Messag…
diegolmello Jul 7, 2026
14e5726
docs: refine CONTEXT.md message glossary (NATIVE-22)
diegolmello Jul 7, 2026
5dd2032
chore: format code and fix lint issues
diegolmello Jul 7, 2026
112cdb9
refactor: guard appendQuote against duplicate ids and rename useArchi…
diegolmello Jul 7, 2026
5dd895a
refactor: make REST string-ts path explicit in computeIsHeader, drop …
diegolmello Jul 7, 2026
c6b44d5
refactor: extract memoized RoomProviders FC, stabilize RoomView RoomC…
diegolmello Jul 7, 2026
d316bda
refactor: wire ShareView to shared RoomProviders FC (NATIVE-22)
diegolmello Jul 7, 2026
7278a62
chore: remove console.count render log (NATIVE-22)
diegolmello Jul 7, 2026
d2b29fc
test: pin autoTranslate boundary for translate hooks (NATIVE-22)
diegolmello Jul 7, 2026
f41a8ba
chore: co-locate message testHelpers (NATIVE-22)
diegolmello Jul 7, 2026
954b18f
refactor: narrow Discussion item subscription (NATIVE-22)
diegolmello Jul 7, 2026
e83d3f3
fix: unify autoTranslate boundary to truthy (NATIVE-22)
diegolmello Jul 7, 2026
b8c9a90
refactor: collapse item/previousItem effects to one (NATIVE-22)
diegolmello Jul 7, 2026
f98690c
refactor: drop bespoke action->interaction mapping in ShareView (NATI…
diegolmello Jul 7, 2026
10521f4
refactor: extract useMessageTouchable pressability hook (NATIVE-22)
diegolmello Jul 7, 2026
da66df3
perf: sync only reactive fields in MessageRoomStoreProvider (NATIVE-22)
diegolmello Jul 7, 2026
f27d8aa
refactor: extract shared BranchAttachmentContent for message branches…
diegolmello Jul 7, 2026
e81c177
refactor: rename Touchable to MessageActionTouchable (NATIVE-22)
diegolmello Jul 7, 2026
4afdf9f
chore: route ModalBlockView's empty-message fixture through unknown (…
diegolmello Jul 7, 2026
3512115
refactor: strip redundant displayName from message components (NATIVE…
diegolmello Jul 7, 2026
0381b55
Merge branch 'develop' into native-22-message-hooks
diegolmello Jul 8, 2026
f0c61cc
chore: refresh time-relative Timestamp story snapshot
diegolmello Jul 8, 2026
b074fee
refactor: rename InteractionStore to MessageActionStore, normalize ac…
diegolmello Jul 8, 2026
01ad242
refactor: collapse message-action hooks into one useMessageAction() (…
diegolmello Jul 8, 2026
b0b3516
refactor: harden no-provider fallback with an inert MessageActionStor…
diegolmello Jul 8, 2026
289d65e
merge: MessageActionStore refactor (NATIVE-22)
diegolmello Jul 8, 2026
5b9bc59
fix: resync room-reactive fields in MessageRoomStore (NATIVE-22)
diegolmello Jul 8, 2026
052ba9b
refactor: move MessageActionStore into containers/message/stores (NAT…
diegolmello Jul 8, 2026
9e1d3f8
fix: restore Jitsi started-a-call line for jitsi_call_started message…
diegolmello Jul 8, 2026
82637b9
test: document useFile's stuck isMessagePersisted contract (NATIVE-22)
diegolmello Jul 8, 2026
cf2b383
test: cover useMessageTouchable/useMessageLongPress/useMessagePress b…
diegolmello Jul 8, 2026
f768034
refactor: narrow IMessage.blocks and e2eMentions off any (NATIVE-22)
diegolmello Jul 8, 2026
49ceb59
test: guard {memo:true} @json invariant (NATIVE-22)
diegolmello Jul 8, 2026
ffb81e9
feat: warn on capture-once store footguns (NATIVE-22)
diegolmello Jul 8, 2026
5827c9c
refactor: drop dead editing/rightButtonsWidth state and close the any…
diegolmello Jul 8, 2026
43494d2
test: close Blocks/RoomProviders/MessageRoomStore coverage gaps (NATI…
diegolmello Jul 8, 2026
d3283db
refactor: remove any from message story fixtures (NATIVE-22)
diegolmello Jul 8, 2026
0a12d2f
refactor: split message components into Message/ (density) + Layout/ …
diegolmello Jul 8, 2026
780456c
refactor: colocate Content orchestrator into Content/index.tsx (NATIV…
diegolmello Jul 8, 2026
5e560b7
chore: annotate Touch.tsx with 'use memo' compiler directive (NATIVE-22)
diegolmello Jul 8, 2026
f2a428f
refactor: rename AttachmentLayout → ContentLayout (NATIVE-22)
diegolmello Jul 9, 2026
b907bc8
refactor: split Message and MessageTouchable into separate files (NAT…
diegolmello Jul 9, 2026
954a30a
Merge branch 'develop' into native-22-message-hooks
diegolmello Jul 9, 2026
387fd4a
fix: correct stale InteractionStore error message in MessageActionSto…
diegolmello Jul 9, 2026
de784df
refactor: use MessageActionProvider in prod, relocate test helper (NA…
diegolmello Jul 9, 2026
149d7e1
chore: remove dead displayName and redundant comment (NATIVE-22)
diegolmello Jul 9, 2026
6459910
chore: remove duplicate roomAttrsUpdate key (NATIVE-1354)
diegolmello Jul 9, 2026
8db26c4
docs: add join-state vocabulary and Positional-state split (NATIVE-1353)
diegolmello Jul 9, 2026
0a95808
refactor: group message touch-surfaces into Touchable/ (NATIVE-22)
diegolmello Jul 9, 2026
555f941
docs: retire 'interaction' from glossary, fold into Message Action St…
diegolmello Jul 9, 2026
e5b0a68
refactor: extract useRoomSubscription hook (NATIVE-1356)
diegolmello Jul 9, 2026
5ec4755
refactor: extract useJumpToMessage hook (NATIVE-1355)
diegolmello Jul 9, 2026
514c18d
refactor: dedup message component helpers (NATIVE-22)
diegolmello Jul 9, 2026
681691d
fix: emit fresh roomUpdate snapshot from useRoomSubscription (NATIVE-…
diegolmello Jul 9, 2026
73004e8
docs: add Message component architecture reference (NATIVE-22)
diegolmello Jul 9, 2026
e09d96c
refactor: extract useHeader hook from RoomView
diegolmello Jul 9, 2026
e796a59
refactor: convert RoomView to a function component
diegolmello Jul 9, 2026
f03920e
refactor: remove frozen-handler dev guard from MessageRoomStore
diegolmello Jul 9, 2026
be9f9eb
fix: never quote edit/react message id in media ShareView (NATIVE-22)
diegolmello Jul 10, 2026
abe0f0c
refactor: move IRoomInfoParam to definitions (NATIVE-22)
diegolmello Jul 10, 2026
bba78b1
fix: defer room init behind interactions and stabilize its trigger (N…
diegolmello Jul 10, 2026
59e8990
refactor: adopt 'use memo' annotation, drop manual memoization
diegolmello Jul 10, 2026
0e6f1c1
fix: rebind ROOM_REMOVED listener when handler identity changes
diegolmello Jul 10, 2026
9a8ccd6
test: cover useRoomSubscription unmount cleanup
diegolmello Jul 10, 2026
901c0af
refactor: dissolve useRoomSubscription into rid-keyed RoomStore
diegolmello Jul 10, 2026
82e5e6f
refactor: replace RoomContext with per-instance composer zustand store
diegolmello Jul 10, 2026
2cbffca
refactor: extract useMessageActions hook from RoomView
diegolmello Jul 10, 2026
a61d2b6
refactor: extract useRoomLifecycle hook from RoomView
diegolmello Jul 10, 2026
d32fd36
refactor: extract useRoomNavigation hook from RoomView
diegolmello Jul 10, 2026
7a32745
refactor: extract useOmnichannelPermissions hook from RoomView
diegolmello Jul 10, 2026
bf47367
refactor: extract MessageRow component from RoomView
diegolmello Jul 10, 2026
8e442c5
refactor: extract RoomFooter + RoomMessageActions components from Roo…
diegolmello Jul 10, 2026
eabf381
refactor: drop room-object param from RoomView navigation route
diegolmello Jul 10, 2026
f44d17c
refactor: shrink useHeader to self-source ambient and store data
diegolmello Jul 11, 2026
855d9b5
refactor: warm RoomStore at navigation time
diegolmello Jul 11, 2026
34e17bf
refactor: annotate RoomView with 'use memo' and drop manual callbacks
diegolmello Jul 11, 2026
0bc4c5c
refactor: drop dead fname field from goRoom warm-up
diegolmello Jul 11, 2026
59f97b0
Merge remote-tracking branch 'origin/native-22-message-hooks' into na…
diegolmello Jul 11, 2026
5dec20a
chore: format code and fix lint issues
diegolmello Jul 11, 2026
d5990e2
fix: subscribe MessageRow and RoomFooter to roomUpdate snapshots
diegolmello Jul 11, 2026
9417a85
docs: drop removed FROZEN_KEYS guard references from message architec…
diegolmello Jul 11, 2026
a3e2801
fix: harden RoomStore init ordering, error logging and rid-less registry
diegolmello Jul 11, 2026
3af0880
refactor: type ComposerStore contract and widen handleSendMessage
diegolmello Jul 11, 2026
fa8b597
test: add direct suites for useRoomLifecycle, useRoomNavigation and C…
diegolmello Jul 11, 2026
72488db
refactor: extract useRoomWithUpdate hook with consumer re-render regr…
diegolmello Jul 11, 2026
2f12a58
test: extend useRoomLifecycle and useRoomNavigation suites to unteste…
diegolmello Jul 11, 2026
482f2c5
fix: keep composer placeholder fresh by threading roomUpdate into the…
diegolmello Jul 11, 2026
8f7bb24
fix: discard superseded omnichannel permission fetches with effect-sc…
diegolmello Jul 12, 2026
bcc5918
fix: derive MessageRow isIgnored and badge color inside store selectors
diegolmello Jul 12, 2026
2b37d2b
test: add React Compiler compilation contract for RoomView
diegolmello Jul 12, 2026
ea36011
refactor: remove exhaustive-deps suppressions so RoomView index compiles
diegolmello Jul 13, 2026
eb14e7d
refactor: move omnichannel permission helpers to module scope so hook…
diegolmello Jul 13, 2026
a29e7c5
refactor: unblock compiler on useRoomNavigation with useDebounce and …
diegolmello Jul 13, 2026
8ee630b
refactor: hoist jumpToMessage impl to module scope so the compiler st…
diegolmello Jul 13, 2026
535cc49
refactor: de-suppress useScroll effects so the compiler stops skippin…
diegolmello Jul 13, 2026
70f090f
refactor: de-suppress useRoomLifecycle so the compiler stops skipping…
diegolmello Jul 13, 2026
56bff8a
Merge remote-tracking branch 'origin/develop' into native-34-roomview…
diegolmello Jul 13, 2026
5da0337
perf(RoomView): render fewer rows in first batch for non-anchored lists
diegolmello Jul 13, 2026
380a9bf
refactor(RoomView): move ComposerState to definitions, type ComposerS…
diegolmello Jul 14, 2026
a7d720a
refactor(RoomView): derive readOnly/E2EE at read-time, remove orchest…
diegolmello Jul 14, 2026
a59c9c9
refactor(RoomView): extract jumpToMessage impl into a service
diegolmello Jul 14, 2026
d80fbb5
refactor(RoomView): dissolve useRoomLifecycle into focused hooks
diegolmello Jul 14, 2026
fa8eb96
refactor(message): add useRoomMessageHandlers for self-sourced messag…
diegolmello Jul 14, 2026
269eaee
refactor(RoomView): extract MessageRow hooks and fix render-phase haptic
diegolmello Jul 14, 2026
ff421d2
refactor(message): self-source leaf handlers via useRoomMessageHandlers
diegolmello Jul 14, 2026
a498ce3
refactor(RoomView): convert RightButtons to function component and sh…
diegolmello Jul 14, 2026
37a16f0
refactor(RoomView): decompose RoomFooter into self-sourcing branch co…
diegolmello Jul 14, 2026
f98c852
refactor(RoomView): make omnichannel permission flags reactive via us…
diegolmello Jul 14, 2026
b4c9067
perf(message): gate per-row a11y ordering wrappers behind accessibili…
diegolmello Jul 14, 2026
8bc6793
test(RoomView): update LoadMore story snapshots after a11y wrapper ga…
diegolmello Jul 15, 2026
d6c9e97
refactor(RoomView): consolidate shared types, drop barrels and test-o…
diegolmello Jul 15, 2026
2312900
fix(RoomView): clear eslint errors across refactored hooks
diegolmello Jul 15, 2026
3fbc2b4
fix(RoomView): pass joinCodeRequired through navigation so protected …
diegolmello Jul 15, 2026
5ebf8c6
fix(RoomView): restore initialNumToRender=20 so non-anchored scroll p…
diegolmello Jul 15, 2026
53e5d21
test(e2e): wait for main room to settle after leaving thread before s…
diegolmello Jul 15, 2026
3457574
fix(RoomView): capture rid/t/tmid once at mount so popTo param wipe c…
diegolmello Jul 15, 2026
198fc39
Merge branch 'develop' into native-34-roomview-hooks
diegolmello Jul 15, 2026
07198fc
fix(RoomView): split RoomStore registry into peek/acquire/release to …
diegolmello Jul 15, 2026
dcc4565
refactor(RoomView): apply Phase 2 comment/test verdicts + relocate ho…
diegolmello Jul 15, 2026
f43feb5
refactor(RoomView): move autocomplete a11y announce into a colocated …
diegolmello Jul 15, 2026
266e3f0
fix(RoomView): harden useRoomStoreByRid fallback and defer unmount re…
diegolmello Jul 15, 2026
05b2db6
refactor(RoomView): make join/resume creator-owned actions, drop stor…
diegolmello Jul 15, 2026
545fce6
refactor(RoomView): produce message handlers in RoomView, inject via …
diegolmello Jul 15, 2026
8ccdb24
refactor(RoomView): adopt usePermissions, split observer hooks, dedup…
diegolmello Jul 15, 2026
f4f33cc
refactor(message): source user/baseUrl from redux, drop MessageRoomSt…
diegolmello Jul 15, 2026
635241e
refactor(RoomView): Phase 8 conventions sweep — theme, navigation, ty…
diegolmello Jul 16, 2026
29bbe91
refactor(RoomView): move root components into components/
diegolmello Jul 16, 2026
b1aceca
Merge remote-tracking branch 'origin/native-34-roomview-hooks' into n…
diegolmello Jul 16, 2026
1615f6d
chore: format code and fix lint issues
diegolmello Jul 16, 2026
afb6a3e
refactor(RoomView): align latest-ref usage with escape-hatches review
diegolmello Jul 16, 2026
ed710d8
Merge branch 'native-34-roomview-hooks' of github.com:RocketChat/Rock…
diegolmello Jul 16, 2026
1fa03be
refactor(RoomView): extract shared pushThreadRoom service
diegolmello Jul 16, 2026
a6e80df
refactor(RoomView): dedup reaction handlers and send path
diegolmello Jul 16, 2026
5bfeaf8
refactor(RoomView): type message-hook params, drop any/Function and t…
diegolmello Jul 16, 2026
8a6d4df
fix(RoomView): recompute livechat on-hold permission on pure onHold t…
diegolmello Jul 16, 2026
fe17027
fix(RoomView): mechanical review nits (log, effect cleanup, named hel…
diegolmello Jul 16, 2026
c54bb03
refactor(RoomView): dedup ComposerStore sync field list via rest state
diegolmello Jul 16, 2026
71d2451
fix(RoomView): warn when acquireRoomStore misses a swept registry entry
diegolmello Jul 16, 2026
9ad61cd
refactor(RoomView): self-source props, drop mapStateToProps + HOCs
diegolmello Jul 16, 2026
6d54182
refactor(RoomView): dedup dual-mode override + roomUpdate-freshness p…
diegolmello Jul 16, 2026
3717594
perf(RoomView): stop per-message header rebuild in useHeader
diegolmello Jul 16, 2026
36f27a5
perf(RoomView): fetch livechat routing config once, derive on-hold se…
diegolmello Jul 16, 2026
74b28bd
refactor(MessageComposer): derive quoted/editing selectors in Message…
diegolmello Jul 16, 2026
cd162f9
refactor(MessageRoomStore): type nav-param, merge overrides, split re…
diegolmello Jul 16, 2026
6bf89cf
refactor(isReadOnly): extract shared branch evaluator
diegolmello Jul 16, 2026
71ffc1d
fix(isReadOnly): short-circuit archived/muted before permission fetch
diegolmello Jul 16, 2026
eaa7412
refactor(RoomView): drop legacy connect/forwardRef/withMasterDetail f…
diegolmello Jul 16, 2026
916cb5f
refactor(RoomView): render MessageRow directly, drop renderRow render…
diegolmello Jul 16, 2026
784d171
refactor(RoomView): batch quick-win cleanups
diegolmello Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions .argent/flows/bench-part1.template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
steps:
- echo: On rooms list — open bench-roomview-hooks channel (top row)
- tool: await-ui-element
args:
condition: visible
selector:
text: bench-roomview-hooks
timeoutMs: 15000
- tool: gesture-tap
args:
x: 0.5
y: 0.218
- tool: await-ui-element
args:
condition: visible
selector:
identifier: message-composer-actions
timeoutMs: 15000
- tool: await-ui-element
args:
condition: exists
selector:
text: e2e_admin
timeoutMs: 15000
- echo: In room — scroll up through history until load-more pagination fires
- tool: run-sequence
args:
steps:
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: run-sequence
args:
steps:
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: await-ui-element
args:
condition: exists
selector:
text: seed message 1
timeoutMs: 15000
pollIntervalMs: 500
- echo: Pagination loaded. Tap composer, type run-tagged message, send
- tool: gesture-tap
args:
x: 0.5
y: 0.933
- wait: 700
- tool: gesture-tap
args:
x: 0.5
y: 0.933
- tool: await-ui-element
args:
condition: visible
selector:
text: return
timeoutMs: 10000
- tool: keyboard
args:
text: Bench RUNID msg1
delayMs: 150
- tool: await-ui-element
args:
condition: visible
selector:
identifier: message-composer-send
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9303
y: 0.5778
- echo: Dismiss keyboard (swipe down), jump to last message, verify send
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.4, toX: 0.5, toY: 0.85, settle: true }
- tool: await-ui-element
args:
condition: visible
selector:
text: Jump to last message
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9
y: 0.805
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench RUNID msg1
timeoutMs: 15000
executionPrerequisite: Rooms list visible, bench channel top row. RUNID replaced.
130 changes: 130 additions & 0 deletions .argent/flows/bench-part1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
steps:
- echo: On rooms list — open bench-roomview-hooks channel (top row)
- tool: await-ui-element
args:
condition: visible
selector:
text: bench-roomview-hooks
timeoutMs: 15000
- tool: gesture-tap
args:
x: 0.5
y: 0.218
- tool: await-ui-element
args:
condition: visible
selector:
identifier: message-composer-actions
timeoutMs: 15000
- tool: await-ui-element
args:
condition: exists
selector:
text: e2e_admin
timeoutMs: 15000
- echo: In room — scroll up through history until load-more pagination fires
- tool: run-sequence
args:
steps:
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: run-sequence
args:
steps:
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.25, toX: 0.5, toY: 0.75, settle: true }
delayMs: 400
- tool: await-ui-element
args:
condition: exists
selector:
text: seed message 1
timeoutMs: 15000
pollIntervalMs: 500
- echo: Pagination loaded. Tap composer, type run-tagged message, send
- tool: gesture-tap
args:
x: 0.5
y: 0.933
- wait: 700
- tool: gesture-tap
args:
x: 0.5
y: 0.933
- tool: await-ui-element
args:
condition: visible
selector:
text: return
timeoutMs: 10000
- tool: keyboard
args:
text: Bench a2 msg1
delayMs: 150
- tool: await-ui-element
args:
condition: visible
selector:
identifier: message-composer-send
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9303
y: 0.5778
- echo: Dismiss keyboard (swipe down), jump to last message, verify send
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.4, toX: 0.5, toY: 0.85, settle: true }
- tool: await-ui-element
args:
condition: visible
selector:
text: Jump to last message
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9
y: 0.805
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench a2 msg1
timeoutMs: 15000
executionPrerequisite: Rooms list visible, bench channel top row. a2 replaced.
52 changes: 52 additions & 0 deletions .argent/flows/bench-part2.template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
steps:
- tool: await-ui-element
args:
condition: visible
selector:
text: Edit
timeoutMs: 10000
- wait: 400
- tool: gesture-tap
args:
x: 0.5
y: 0.586
- tool: await-ui-element
args:
condition: hidden
selector:
text: Reply in thread
timeoutMs: 10000
- wait: 800
- tool: keyboard
args:
text: ' edited'
delayMs: 150
- tool: gesture-tap
args:
x: 0.93
y: 0.578
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench RUNID msg1 edited
timeoutMs: 15000
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.4, toX: 0.5, toY: 0.85, settle: true }
- tool: await-ui-element
args:
condition: visible
selector:
text: Jump to last message
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9
y: 0.805
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench RUNID msg1 edited
timeoutMs: 15000
executionPrerequisite: Action sheet open on Bench RUNID msg1 (long-pressed).
52 changes: 52 additions & 0 deletions .argent/flows/bench-part2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
steps:
- tool: await-ui-element
args:
condition: visible
selector:
text: Edit
timeoutMs: 10000
- wait: 400
- tool: gesture-tap
args:
x: 0.5
y: 0.586
- tool: await-ui-element
args:
condition: hidden
selector:
text: Reply in thread
timeoutMs: 10000
- wait: 800
- tool: keyboard
args:
text: ' edited'
delayMs: 150
- tool: gesture-tap
args:
x: 0.93
y: 0.578
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench a2 msg1 edited
timeoutMs: 15000
- tool: gesture-swipe
args: { fromX: 0.5, fromY: 0.4, toX: 0.5, toY: 0.85, settle: true }
- tool: await-ui-element
args:
condition: visible
selector:
text: Jump to last message
timeoutMs: 10000
- tool: gesture-tap
args:
x: 0.9
y: 0.805
- tool: await-ui-element
args:
condition: visible
selector:
text: Bench a2 msg1 edited
timeoutMs: 15000
executionPrerequisite: Action sheet open on Bench a2 msg1 (long-pressed).
Loading
Loading