Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
adcba32
feat: Devtool for sticky events MSC4354
BillCarsonFr Mar 5, 2026
335a5df
Update devtool snapshot to add sticky state devtool
BillCarsonFr Mar 6, 2026
37f768d
Merge branch 'develop' into valere/devtool_sticky_event
BillCarsonFr Mar 6, 2026
424129a
Update devtool playwright screenshot
BillCarsonFr Mar 6, 2026
15945ed
review: Use UserFriendlyError instead or Error
BillCarsonFr Mar 6, 2026
1a09bba
review: fix docs
BillCarsonFr Mar 6, 2026
eabe6b2
review: remove css in js, remove js hover tracking
BillCarsonFr Mar 6, 2026
2249c6a
review: use keyboard enums
BillCarsonFr Mar 6, 2026
0d458b7
add a check to see if homeserver supports sticky events
BillCarsonFr Mar 6, 2026
3eef477
Merge branch 'develop' into valere/devtool_sticky_event
BillCarsonFr Mar 6, 2026
6a7a5d7
fixup: prettier
BillCarsonFr Mar 6, 2026
b43fb2a
review: No static inline styles
BillCarsonFr Mar 9, 2026
6e41f5b
review: use cpd spacing / border / color values
BillCarsonFr Mar 9, 2026
7f7cd1b
cleanup keyboard code
BillCarsonFr Mar 10, 2026
ad58b21
Fix unsupported alert look
BillCarsonFr Mar 10, 2026
03638a7
Merge branch 'develop' into valere/devtool_sticky_event
BillCarsonFr Mar 10, 2026
ec460b2
review: proper useState usage (no | null)
BillCarsonFr Mar 10, 2026
63e49ac
review: useAsyncMemo instead of useEffect
BillCarsonFr Mar 10, 2026
a27cb71
review: use useTypedEventEmitterState
BillCarsonFr Mar 10, 2026
4522f18
fix: better support for empty string event type
BillCarsonFr Mar 10, 2026
fa9039c
Merge branch 'develop' into valere/devtool_sticky_event
BillCarsonFr Mar 10, 2026
d0d00d4
Merge branch 'develop' into valere/devtool_sticky_event
BillCarsonFr Mar 13, 2026
b626701
review: remove redundant expired state
BillCarsonFr Mar 13, 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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 50 additions & 0 deletions apps/web/res/css/views/dialogs/_DevtoolsDialog.pcss
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,53 @@ Please see LICENSE files in the repository root for full details.
/* used on focus */
color: $links !important;
}

.mx_DevTools_sticky_explorer {
table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
margin-top: var(--cpd-space-3x);

th {
text-align: left;
padding: var(--cpd-space-2x) var(--cpd-space-3x);
}

th#user_header {
width: 35%;
}
th#sticky_key_header {
width: 50%;
}
th#expires_in_header {
width: 15%;
}

tr {
cursor: pointer;
border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
background: transparent;
}

tr:hover {
color: var(--cpd-color-text-secondary);
background: var(--cpd-color-bg-action-secondary-hovered);
}

tr:focus-visible {
outline: var(--cpd-border-width-2) solid var(--cpd-color-border-focused);
}

td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: var(--cpd-space-2x) var(--cpd-space-3x);
}

td.expired_column {
text-align: right;
}
}
}
2 changes: 2 additions & 0 deletions apps/web/src/components/views/dialogs/DevtoolsDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import CopyableText from "../elements/CopyableText";
import RoomNotifications from "./devtools/RoomNotifications";
import { Crypto } from "./devtools/Crypto";
import SettingsField from "../elements/SettingsField.tsx";
import { StickyStateExplorer } from "./devtools/StickyEventState.tsx";

enum Category {
Room,
Expand All @@ -49,6 +50,7 @@ const Tools: Record<Category, [label: TranslationKey, tool: Tool][]> = {
[_td("devtools|notifications_debug"), RoomNotifications],
[_td("devtools|active_widgets"), WidgetExplorer],
[_td("devtools|users"), UserList],
[_td("devtools|explore_sticky_state"), StickyStateExplorer],
],
[Category.Other]: [
[_td("devtools|explore_account_data"), AccountDataExplorer],
Expand Down
6 changes: 6 additions & 0 deletions apps/web/src/components/views/dialogs/devtools/Event.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ export const stateKeyField = (defaultValue?: string): IFieldDef => ({
default: defaultValue,
});

export const stickyDurationField = (defaultValue?: number): IFieldDef => ({
id: "sticky_duration",
label: _td("devtools|sticky_duration"),
default: `${defaultValue ?? 360000}`,
});

const validateEventContent = withValidation<any, Error | undefined>({
async deriveData({ value }) {
try {
Expand Down
Loading
Loading