Skip to content

Commit c8a9d29

Browse files
Make webViewNonce optional, revert to earlier TW classes, introduce missing TW classes
1 parent b858b1f commit c8a9d29

4 files changed

Lines changed: 42 additions & 14 deletions

File tree

src/__tests__/components/ContinuousView.test.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -428,10 +428,9 @@ describe('ContinuousView fade overlays', () => {
428428
it('does not render prev fade at book start', () => {
429429
const { container } = render(<ContinuousView book={makeBook()} />);
430430

431-
// Prev fade gradient is tw:from-background (prev-to-next gradient)
432431
const gradients = container.querySelectorAll('[aria-hidden="true"]');
433432
const prevFades = Array.from(gradients).filter((el) =>
434-
el.className.includes('tw:bg-linear-to-r'),
433+
el.className.includes('tw:bg-linear-to-e'),
435434
);
436435
expect(prevFades).toHaveLength(0);
437436
});
@@ -441,7 +440,7 @@ describe('ContinuousView fade overlays', () => {
441440

442441
const gradients = container.querySelectorAll('[aria-hidden="true"]');
443442
const nextFades = Array.from(gradients).filter((el) =>
444-
el.className.includes('tw:bg-linear-to-l'),
443+
el.className.includes('tw:bg-linear-to-s'),
445444
);
446445
expect(nextFades).toHaveLength(1);
447446
});
@@ -453,7 +452,7 @@ describe('ContinuousView fade overlays', () => {
453452

454453
const gradients = container.querySelectorAll('[aria-hidden="true"]');
455454
const prevFades = Array.from(gradients).filter((el) =>
456-
el.className.includes('tw:bg-linear-to-r'),
455+
el.className.includes('tw:bg-linear-to-e'),
457456
);
458457
expect(prevFades).toHaveLength(1);
459458
});
@@ -468,7 +467,7 @@ describe('ContinuousView fade overlays', () => {
468467

469468
const gradients = container.querySelectorAll('[aria-hidden="true"]');
470469
const nextFades = Array.from(gradients).filter((el) =>
471-
el.className.includes('tw:bg-linear-to-l'),
470+
el.className.includes('tw:bg-linear-to-s'),
472471
);
473472
expect(nextFades).toHaveLength(0);
474473
});

src/__tests__/main.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ type WebViewProvider = {
7373
getWebView(
7474
savedWebViewDefinition: SavedWebViewDefinition,
7575
openWebViewOptions: OpenWebViewOptions | undefined,
76-
webViewNonce: string,
76+
webViewNonce?: string,
7777
): Promise<WebViewDefinition | undefined>;
7878
};
7979

@@ -330,7 +330,7 @@ describe('main', () => {
330330
webViewType: mainWebViewType,
331331
};
332332

333-
const result = await provider.getWebView(savedWebView, {}, 'nonce');
333+
const result = await provider.getWebView(savedWebView, {});
334334

335335
expect(result).toMatchObject({
336336
...savedWebView,
@@ -351,7 +351,7 @@ describe('main', () => {
351351
};
352352

353353
const options: InterlinearizerOpenOptions = { projectId: 'my-project' };
354-
const result = await provider.getWebView(savedWebView, options, 'nonce');
354+
const result = await provider.getWebView(savedWebView, options);
355355

356356
expect(result).toMatchObject({ projectId: 'my-project' });
357357
});
@@ -367,7 +367,7 @@ describe('main', () => {
367367
projectId: 'saved-project',
368368
};
369369

370-
const result = await provider.getWebView(savedWebView, {}, 'nonce');
370+
const result = await provider.getWebView(savedWebView, {});
371371

372372
expect(result).toMatchObject({ projectId: 'saved-project' });
373373
});
@@ -383,7 +383,7 @@ describe('main', () => {
383383
webViewType: 'other.webView',
384384
};
385385

386-
await expect(provider.getWebView(savedWebView, {}, 'nonce')).rejects.toThrow(
386+
await expect(provider.getWebView(savedWebView, {})).rejects.toThrow(
387387
`${mainWebViewType} provider received request to provide a ${savedWebView.webViewType} WebView`,
388388
);
389389
});
@@ -399,7 +399,7 @@ describe('main', () => {
399399
projectId: 'saved-project',
400400
};
401401

402-
const result = await provider.getWebView(savedWebView, undefined, 'nonce');
402+
const result = await provider.getWebView(savedWebView, undefined);
403403

404404
expect(result).toMatchObject({ projectId: 'saved-project' });
405405
});

src/components/ContinuousView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,15 +332,15 @@ export default function ContinuousView({
332332
{!atStart && (
333333
<div
334334
aria-hidden="true"
335-
className="tw:pointer-events-none tw:absolute tw:inset-y-0 tw:left-0 tw:z-10 tw:w-8 tw:bg-linear-to-r tw:from-background tw:to-transparent"
335+
className="tw:pointer-events-none tw:absolute tw:inset-y-0 tw:inset-s-0 tw:z-10 tw:w-8 tw:bg-linear-to-e tw:from-background tw:to-transparent"
336336
/>
337337
)}
338338

339339
{/* Next fade overlay — only rendered when the next arrow is enabled */}
340340
{!atEnd && (
341341
<div
342342
aria-hidden="true"
343-
className="tw:pointer-events-none tw:absolute tw:inset-y-0 tw:right-0 tw:z-10 tw:w-8 tw:bg-linear-to-l tw:from-background tw:to-transparent"
343+
className="tw:pointer-events-none tw:absolute tw:inset-y-0 tw:inset-e-0 tw:z-10 tw:w-8 tw:bg-linear-to-s tw:from-background tw:to-transparent"
344344
/>
345345
)}
346346

src/tailwind.css

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,38 @@
4848
}
4949

5050
@utility icon-button {
51-
@apply tw:z-10 tw:shrink-0 tw:rounded tw:p-1 tw:text-foreground tw:disabled:opacity-30 tw:hover:bg-muted/50;
51+
@apply tw:shrink-0 tw:rounded tw:p-1 tw:text-foreground tw:disabled:opacity-30 tw:hover:bg-muted/50;
5252
}
5353

54+
@utility bg-linear-to-e {
55+
--tw-gradient-position: to right;
56+
@supports (background-image: linear-gradient(in lab, red, red)) {
57+
--tw-gradient-position: to right in oklab;
58+
}
59+
background-image: linear-gradient(var(--tw-gradient-stops));
60+
[dir='rtl'] & {
61+
--tw-gradient-position: to left;
62+
@supports (background-image: linear-gradient(in lab, red, red)) {
63+
--tw-gradient-position: to left in oklab;
64+
}
65+
}
66+
}
67+
68+
@utility bg-linear-to-s {
69+
--tw-gradient-position: to left;
70+
@supports (background-image: linear-gradient(in lab, red, red)) {
71+
--tw-gradient-position: to left in oklab;
72+
}
73+
background-image: linear-gradient(var(--tw-gradient-stops));
74+
[dir='rtl'] & {
75+
--tw-gradient-position: to right;
76+
@supports (background-image: linear-gradient(in lab, red, red)) {
77+
--tw-gradient-position: to right in oklab;
78+
}
79+
}
80+
}
81+
82+
5483
/*
5584
* CUSTOM: Theme variable policy.
5685
*

0 commit comments

Comments
 (0)