mirror of
https://github.com/movie-web/movie-web.git
synced 2024-11-14 07:55:07 +01:00
cleanup caption cues
This commit is contained in:
parent
12f7f2ee03
commit
51dfef18fb
@ -10,23 +10,32 @@ import { useSource } from "../../state/logic/source";
|
|||||||
|
|
||||||
function CaptionCue({ text }: { text?: string }) {
|
function CaptionCue({ text }: { text?: string }) {
|
||||||
const { captionSettings } = useSettings();
|
const { captionSettings } = useSettings();
|
||||||
return (
|
const textWithNewlines = (text || "").replaceAll(/\r?\n/g, "<br />");
|
||||||
<span
|
|
||||||
className="pointer-events-none mb-1 select-none whitespace-pre-line rounded px-4 py-1 text-center [text-shadow:0_2px_4px_rgba(0,0,0,0.5)]"
|
|
||||||
dir="auto"
|
|
||||||
// eslint-disable-next-line react/no-danger
|
|
||||||
dangerouslySetInnerHTML={{
|
|
||||||
__html: sanitize(text || "", {
|
|
||||||
// https://www.w3.org/TR/webvtt1/#dom-construction-rules
|
// https://www.w3.org/TR/webvtt1/#dom-construction-rules
|
||||||
ALLOWED_TAGS: ["c", "b", "i", "u", "span", "ruby", "rt"],
|
// added a <br /> for newlines
|
||||||
|
const html = sanitize(textWithNewlines, {
|
||||||
|
ALLOWED_TAGS: ["c", "b", "i", "u", "span", "ruby", "rt", "br"],
|
||||||
ADD_TAGS: ["v", "lang"],
|
ADD_TAGS: ["v", "lang"],
|
||||||
ALLOWED_ATTR: ["title", "lang"],
|
ALLOWED_ATTR: ["title", "lang"],
|
||||||
}),
|
});
|
||||||
}}
|
|
||||||
|
return (
|
||||||
|
<p
|
||||||
|
className="pointer-events-none mb-1 select-none rounded px-4 py-1 text-center [text-shadow:0_2px_4px_rgba(0,0,0,0.5)]"
|
||||||
style={{
|
style={{
|
||||||
...captionSettings.style,
|
...captionSettings.style,
|
||||||
}}
|
}}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
// its sanitised a few lines up
|
||||||
|
// eslint-disable-next-line react/no-danger
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: html,
|
||||||
|
}}
|
||||||
|
dir="auto"
|
||||||
/>
|
/>
|
||||||
|
</p>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user