Skip to content

Commit 8d01a3c

Browse files
authored
Merge pull request #1044 from revisit-studies/copilot/show-browser-window-size-warning
Show detected browser dimensions in small-screen resolution warning
2 parents cd2bfcf + 27b5407 commit 8d01a3c

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

src/components/interface/ResolutionWarning.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export function ResolutionWarning() {
1717
const [isRejected, setIsRejected] = useState(false);
1818
const [timeLeft, setTimeLeft] = useState(60);
1919
const [isTimedOut, setIsTimedOut] = useState(false);
20+
const [detectedSize, setDetectedSize] = useState({ width: 0, height: 0 });
2021
const countdownIntervalRef = useRef<NodeJS.Timeout | null>(null);
2122

2223
const { storageEngine } = useStorageEngine();
@@ -25,6 +26,7 @@ export function ResolutionWarning() {
2526

2627
useEffect(() => {
2728
const handleResize = () => {
29+
setDetectedSize({ width: window.innerWidth, height: window.innerHeight });
2830
if (minWidth === undefined || minHeight === undefined) {
2931
return;
3032
}
@@ -110,6 +112,8 @@ export function ResolutionWarning() {
110112
{minWidth !== undefined && ` Width: ${minWidth}px`}
111113
{minHeight !== undefined && ` Height: ${minHeight}px`}
112114
<br />
115+
{`Detected: Width: ${detectedSize.width}px Height: ${detectedSize.height}px`}
116+
<br />
113117
Please resize your browser window to the minimum required size within
114118
{' '}
115119
{timeLeft}

tests/resolution-warning.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { expect, test } from '@playwright/test';
2+
3+
test('shows detected browser size in small-resolution warning', async ({ browser }) => {
4+
const page = await browser.newPage();
5+
await page.setViewportSize({
6+
width: 350,
7+
height: 700,
8+
});
9+
10+
await page.goto('/');
11+
12+
await page.getByLabel('Demo Studies').locator('div').filter({ hasText: 'HTML as a Stimulus' })
13+
.nth(0)
14+
.getByText('Go to Study')
15+
.click();
16+
17+
await expect(page.getByRole('heading', { name: 'Screen Resolution Warning' })).toBeVisible();
18+
await expect(page.getByText('Detected: Width: 350px Height: 700px')).toBeVisible();
19+
});

0 commit comments

Comments
 (0)