extract useFlash

This commit is contained in:
Simon Knott 2025-01-16 15:05:55 +01:00
parent 299a52e0e1
commit 5dcff8f60a
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC
3 changed files with 15 additions and 28 deletions

View file

@ -17,20 +17,7 @@
import * as React from 'react';
import './treeItem.css';
import * as icons from './icons';
import { clsx } from '@web/uiUtils';
// flash is retriggered whenever the value changes
function useFlash(flash: any | undefined) {
const [flashState, setFlashState] = React.useState(false);
React.useEffect(() => {
if (flash) {
setFlashState(true);
const timeout = setTimeout(() => setFlashState(false), 1000);
return () => clearTimeout(timeout);
}
}, [flash]);
return flashState;
}
import { clsx, useFlash } from '@web/uiUtils';
export const TreeItem: React.FunctionComponent<{
title: JSX.Element,

View file

@ -24,20 +24,7 @@ import { CodeMirrorWrapper, lineHeight } from '@web/components/codeMirrorWrapper
import { isTextualMimeType } from '@isomorphic/mimeType';
import { Expandable } from '@web/components/expandable';
import { linkifyText } from '@web/renderUtils';
import { clsx } from '@web/uiUtils';
// flash is retriggered whenever the value changes
function useFlash(flash: any | undefined) {
const [flashState, setFlashState] = React.useState(false);
React.useEffect(() => {
if (flash) {
setFlashState(true);
const timeout = setTimeout(() => setFlashState(false), 1000);
return () => clearTimeout(timeout);
}
}, [flash]);
return flashState;
}
import { clsx, useFlash } from '@web/uiUtils';
type Attachment = AfterActionTraceEventAttachment & { traceUrl: string };

View file

@ -224,3 +224,16 @@ export function scrollIntoViewIfNeeded(element: Element | undefined) {
const kControlCodesRe = '\\u0000-\\u0020\\u007f-\\u009f';
export const kWebLinkRe = new RegExp('(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|www\\.)[^\\s' + kControlCodesRe + '"]{2,}[^\\s' + kControlCodesRe + '"\')}\\],:;.!?]', 'ug');
// flash is retriggered whenever the value changes
export function useFlash(flash: any | undefined) {
const [flashState, setFlashState] = React.useState(false);
React.useEffect(() => {
if (flash) {
setFlashState(true);
const timeout = setTimeout(() => setFlashState(false), 1000);
return () => clearTimeout(timeout);
}
}, [flash]);
return flashState;
}