Skip to content

Commit 4c967de

Browse files
emir-karabegwaleedlatif1
authored andcommitted
Preserve integration navigation with desktop search and larger text
1 parent ca39103 commit 4c967de

6 files changed

Lines changed: 61 additions & 2 deletions

File tree

‎apps/sim/platform/checks/desktop/renderer.spec.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ test('the actual desktop renderer shares product routes, reserves native chrome
3030
await catalog.getByRole('searchbox').fill('Databricks')
3131
await expect(catalog.getByRole('button', { name: /^Databricks / })).toBeInViewport()
3232
await page.keyboard.press('Escape')
33+
await expect(catalog).toBeHidden()
3334
await expect(
3435
page.getByRole('main').getByRole('button', { name: 'Add integration' })
3536
).toBeFocused()

‎apps/sim/platform/checks/integrations.spec.ts‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@ import { expect, test } from '@playwright/test'
33
const origin = process.env.PLATFORM_E2E_ORIGIN ?? 'http://127.0.0.1:3181'
44
const withoutFixtures = 'http://127.0.0.1:3180'
55

6+
test('a single click opens an integration from a long list with enlarged text', async ({
7+
page,
8+
}) => {
9+
await page.setViewportSize({ width: 360, height: 820 })
10+
await page.goto(`${origin}/integrations?state=stress`)
11+
await page.evaluate(() => {
12+
document.documentElement.style.fontSize = '200%'
13+
})
14+
const gmail = page.getByRole('link', { name: /^Gmail / })
15+
await gmail.scrollIntoViewIfNeeded()
16+
await gmail.click()
17+
await expect(page.getByRole('heading', { name: 'Gmail', exact: true })).toBeVisible()
18+
})
19+
620
test('adding member Search provisions sign-in, preserves decisions on navigation and lets an admin remove the app', async ({
721
page,
822
}) => {

‎apps/sim/platform/design-system/components/activity-row/activity-row.module.css‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
.entry {
2+
min-inline-size: 0;
3+
container: activity-row / inline-size;
4+
}
15
.row {
26
display: flex;
37
align-items: center;
@@ -8,6 +12,28 @@
812
text-align: start;
913
cursor: pointer;
1014
}
15+
16+
@container activity-row (max-width: 19rem) {
17+
.row:has(.metaLabel) {
18+
display: grid;
19+
grid-template-columns: minmax(0, 1fr) auto;
20+
gap: var(--ui-stack-gap) var(--ui-row-gap);
21+
}
22+
.row:has(.metaLabel) .meta {
23+
display: contents;
24+
}
25+
.metaLabel {
26+
grid-column: 1;
27+
grid-row: 2;
28+
}
29+
.row:has(.leading) .metaLabel {
30+
margin-inline-start: calc(var(--ui-icon-size) + var(--ui-row-gap));
31+
}
32+
.row:has(.metaLabel) .meta > svg {
33+
grid-column: 2;
34+
grid-row: 1 / span 2;
35+
}
36+
}
1137
.row:hover {
1238
background: var(--ui-hover);
1339
}

‎apps/sim/platform/design-system/components/activity-row/activity-row.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ export function ActivityRow({
4848
</ActivityBody>
4949
{(metadata || showChevron) && (
5050
<span className={styles.meta} data-type='T052'>
51-
{metadata}
51+
{metadata && <span className={styles.metaLabel}>{metadata}</span>}
5252
{showChevron && <Icon name='I032' />}
5353
</span>
5454
)}
5555
</>
5656
)
5757
return (
58-
<li>
58+
<li className={styles.entry}>
5959
{href !== undefined ? (
6060
<Link href={href} className={styles.row}>
6161
{content}

‎apps/sim/platform/design-system/components/modal/overlay-dialog.tsx‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,20 @@ export function OverlayDialog({
7676
aria-label={label}
7777
aria-labelledby={title ? `${id}-title` : undefined}
7878
aria-describedby={description ? `${id}-description` : undefined}
79+
onKeyDown={(event) => {
80+
if (
81+
event.key === 'Escape' &&
82+
!event.defaultPrevented &&
83+
!event.nativeEvent.isComposing &&
84+
event.target instanceof HTMLInputElement &&
85+
event.target.type === 'search' &&
86+
event.target.closest('dialog') === event.currentTarget
87+
) {
88+
event.preventDefault()
89+
event.stopPropagation()
90+
onClose()
91+
}
92+
}}
7993
onCancel={(event) => {
8094
event.preventDefault()
8195
event.stopPropagation()

‎apps/sim/platform/design-system/components/tooltip/tooltip.module.css‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
visibility: visible;
2020
}
2121

22+
.tooltip[aria-hidden="true"] {
23+
pointer-events: none;
24+
}
25+
2226
.tooltip {
2327
width: max-content;
2428
max-width: min(var(--container-app-sidebar), 90vw);

0 commit comments

Comments
 (0)