diff --git a/composer.lock b/composer.lock index bc2912c8..19d897e1 100644 --- a/composer.lock +++ b/composer.lock @@ -5767,12 +5767,12 @@ "source": { "type": "git", "url": "https://github.com/bs-community/TwigBridge.git", - "reference": "72d1481a08c145ca3b0020ee6c07c771bb2ca3bf" + "reference": "61c2084d29bc63c3fa173fc631d8354fdf1c01fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bs-community/TwigBridge/zipball/72d1481a08c145ca3b0020ee6c07c771bb2ca3bf", - "reference": "72d1481a08c145ca3b0020ee6c07c771bb2ca3bf", + "url": "https://api.github.com/repos/bs-community/TwigBridge/zipball/61c2084d29bc63c3fa173fc631d8354fdf1c01fb", + "reference": "61c2084d29bc63c3fa173fc631d8354fdf1c01fb", "shasum": "" }, "require": { @@ -5829,7 +5829,7 @@ "support": { "source": "https://github.com/bs-community/TwigBridge/tree/blessing" }, - "time": "2025-01-18T08:54:48+00:00" + "time": "2025-01-18T13:54:09+00:00" }, { "name": "sanmai/hoa-protocol", @@ -9387,16 +9387,16 @@ }, { "name": "barryvdh/reflection-docblock", - "version": "v2.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f" + "reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/818be8de6af4d16ef3ad51ea9234b3d37026ee5f", - "reference": "818be8de6af4d16ef3ad51ea9234b3d37026ee5f", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/b6ff9f93603561f50e53b64310495d20b8dff5d8", + "reference": "b6ff9f93603561f50e53b64310495d20b8dff5d8", "shasum": "" }, "require": { @@ -9433,9 +9433,9 @@ } ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.0" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.3.1" }, - "time": "2024-12-30T10:35:04+00:00" + "time": "2025-01-18T19:26:32+00:00" }, { "name": "clue/ndjson-react", diff --git a/resources/assets/src/components/Alert.tsx b/resources/assets/src/components/Alert.tsx index 9e587540..675b0769 100644 --- a/resources/assets/src/components/Alert.tsx +++ b/resources/assets/src/components/Alert.tsx @@ -7,12 +7,12 @@ const icons = new Map([ ['danger', 'times-circle'], ]); -type Properties = { +type Props = { readonly type: AlertType; readonly children?: React.ReactNode; }; -const Alert: React.FC = ({type, children}) => { +const Alert: React.FC = ({type, children}) => { const icon = icons.get(type); return children === '' diff --git a/resources/assets/src/components/ButtonEdit.tsx b/resources/assets/src/components/ButtonEdit.tsx index 4f5c11f3..f5a3329e 100644 --- a/resources/assets/src/components/ButtonEdit.tsx +++ b/resources/assets/src/components/ButtonEdit.tsx @@ -1,9 +1,9 @@ -type Properties = { +type Props = { readonly title?: string; readonly onClick: React.MouseEventHandler; }; -const ButtonEdit: React.FC = ({title, onClick}) => ( +const ButtonEdit: React.FC = ({title, onClick}) => ( diff --git a/resources/assets/src/components/Captcha.tsx b/resources/assets/src/components/Captcha.tsx index dd1a5831..adc78133 100644 --- a/resources/assets/src/components/Captcha.tsx +++ b/resources/assets/src/components/Captcha.tsx @@ -18,8 +18,8 @@ class Captcha extends React.Component, State> { // eslint-disable-next-line ts/no-restricted-types ref: React.RefObject; - constructor(properties: Record) { - super(properties); + constructor(props: Record) { + super(props); this.state = { value: '', time: Date.now(), diff --git a/resources/assets/src/components/DarkModeButton.tsx b/resources/assets/src/components/DarkModeButton.tsx index 55b14691..6a8bb7f9 100644 --- a/resources/assets/src/components/DarkModeButton.tsx +++ b/resources/assets/src/components/DarkModeButton.tsx @@ -1,11 +1,11 @@ import * as fetch from '@/scripts/net'; import {useState} from 'react'; -type Properties = { +type Props = { readonly initMode: boolean; }; -const DarkModeButton: React.FC = ({initMode}) => { +const DarkModeButton: React.FC = ({initMode}) => { const [darkMode, setDarkMode] = useState(initMode); const icon = darkMode ? 'moon' : 'sun'; diff --git a/resources/assets/src/components/EmailSuggestion.tsx b/resources/assets/src/components/EmailSuggestion.tsx index dec3d1c9..bbd34184 100644 --- a/resources/assets/src/components/EmailSuggestion.tsx +++ b/resources/assets/src/components/EmailSuggestion.tsx @@ -13,11 +13,11 @@ const styles = css` const domainNames = new Set(['qq.com', '163.com', 'gmail.com', 'hotmail.com']); -type Properties = Omit, 'onChange'> & { +type Props = Omit, 'onChange'> & { onChange: (value: string) => void; }; -const EmailSuggestion: React.FC = props => { +const EmailSuggestion: React.FC = props => { useEffect(() => { emit('emailDomainsSuggestion', domainNames); }, []); diff --git a/resources/assets/src/components/FileInput.tsx b/resources/assets/src/components/FileInput.tsx index 0313daf3..3f3fcdd3 100644 --- a/resources/assets/src/components/FileInput.tsx +++ b/resources/assets/src/components/FileInput.tsx @@ -8,13 +8,13 @@ const hideRawBrowseButton = css` } `; -type Properties = { +type Props = { file: File | undefined; accept?: string; onChange: (event: React.ChangeEvent) => void; }; -const FileInput: React.FC = properties => { +const FileInput: React.FC = props => { const reference = useRef(null); const handleClick = () => { @@ -31,12 +31,12 @@ const FileInput: React.FC = properties => { type='file' className='custom-file-input' id='select-file' - accept={properties.accept} + accept={props.accept} title={t('skinlib.upload.select-file')} - onChange={properties.onChange} + onChange={props.onChange} />
diff --git a/resources/assets/src/components/Modal.tsx b/resources/assets/src/components/Modal.tsx index 07a5ce20..20308bf9 100644 --- a/resources/assets/src/components/Modal.tsx +++ b/resources/assets/src/components/Modal.tsx @@ -2,9 +2,9 @@ import {Modal as BootstrapModal} from 'bootstrap'; import clsx from 'clsx'; import {useEffect, useRef, useState} from 'react'; import {t} from '../scripts/i18n'; -import ModalBody, {type Props as BodyProperties} from './ModalBody'; -import ModalFooter, {type Props as FooterProperties} from './ModalFooter'; -import ModalHeader, {type Props as HeaderProperties} from './ModalHeader'; +import ModalBody, {type Props as BodyProps} from './ModalBody'; +import ModalFooter, {type Props as FooterProps} from './ModalFooter'; +import ModalHeader, {type Props as HeaderProps} from './ModalHeader'; type BasicOptions = { readonly mode?: 'alert' | 'confirm' | 'prompt'; @@ -17,9 +17,9 @@ type BasicOptions = { children?: React.ReactNode; }; -export type ModalOptions = BasicOptions & HeaderProperties & BodyProperties & FooterProperties; +export type ModalOptions = BasicOptions & HeaderProps & BodyProps & FooterProps; -type Properties = { +type Props = { readonly id?: string; readonly children?: React.ReactNode; readonly footer?: React.ReactNode; @@ -32,7 +32,7 @@ export type ModalResult = { value: string; }; -const Modal: React.FC = properties => { +const Modal: React.FC = props => { const { mode = 'confirm', title = t('general.tip'), @@ -59,7 +59,7 @@ const Modal: React.FC = properties => { children, choices, dangerousHTML: html, - } = properties; + } = props; const [value, setValue] = useState(input); const [valid, setValid] = useState(true); diff --git a/resources/assets/src/components/ModalBody.tsx b/resources/assets/src/components/ModalBody.tsx index 3d7b16d4..8f133b33 100644 --- a/resources/assets/src/components/ModalBody.tsx +++ b/resources/assets/src/components/ModalBody.tsx @@ -1,24 +1,24 @@ -import ModalContent, {type Props as ContentProperties} from './ModalContent'; +import ModalContent, {type Props as ContentProps} from './ModalContent'; import ModalInput, { type - InternalProps as InputInteralProperties, + InternalProps as InputInteralProps, type - Props as InputProperties, + Props as InputProps, } from './ModalInput'; -type InternalProperties = { +type InternalProps = { readonly showInput: boolean; }; -export type Props = ContentProperties & InputProperties; +export type Props = ContentProps & InputProps; -const ModalBody: React.FC = properties => ( +const ModalBody: React.FC = props => (
- - {properties.children} + + {props.children} - {properties.showInput && } + {props.showInput && }
); diff --git a/resources/assets/src/components/ModalContent.tsx b/resources/assets/src/components/ModalContent.tsx index 056631aa..4cfe8930 100644 --- a/resources/assets/src/components/ModalContent.tsx +++ b/resources/assets/src/components/ModalContent.tsx @@ -5,22 +5,22 @@ export type Props = { readonly children?: React.ReactNode; }; -const ModalContent: React.FC = properties => { - if (properties.children) { - return <>{properties.children}; +const ModalContent: React.FC = props => { + if (props.children) { + return <>{props.children}; } - if (properties.text) { + if (props.text) { return ( <> - {properties.text.split(/\r?\n/).map((line, i) => + {props.text.split(/\r?\n/).map((line, i) =>

{line}

)} ); } - if (properties.dangerousHTML) { - return
; + if (props.dangerousHTML) { + return
; } return <>; diff --git a/resources/assets/src/components/ModalFooter.tsx b/resources/assets/src/components/ModalFooter.tsx index 5b4c0213..eb3485e2 100644 --- a/resources/assets/src/components/ModalFooter.tsx +++ b/resources/assets/src/components/ModalFooter.tsx @@ -8,40 +8,40 @@ export type Props = { readonly children?: React.ReactNode; }; -type InternalProperties = { +type InternalProps = { readonly showCancelButton: boolean; onConfirm?: () => void; onDismiss?: () => void; }; -const ModalFooter: React.FC = properties => { +const ModalFooter: React.FC = props => { const classes = ['modal-footer']; - if (properties.flexFooter) { + if (props.flexFooter) { classes.push('d-flex', 'justify-content-between'); } const footerClass = classes.join(' '); - return properties.children - ?
{properties.children}
+ return props.children + ?
{props.children}
: (
- {properties.showCancelButton && ( + {props.showCancelButton && ( )}
); diff --git a/resources/assets/src/components/ModalHeader.tsx b/resources/assets/src/components/ModalHeader.tsx index 288d0dd6..ea1e2b07 100644 --- a/resources/assets/src/components/ModalHeader.tsx +++ b/resources/assets/src/components/ModalHeader.tsx @@ -3,12 +3,12 @@ export type Props = { readonly title?: string; }; -type InternalProperties = { +type InternalProps = { onDismiss?: () => void; readonly show?: boolean; }; -const ModalHeader: React.FC = ({show, title, onDismiss}) => +const ModalHeader: React.FC = ({show, title, onDismiss}) => show ? (
diff --git a/resources/assets/src/components/ModalInput.tsx b/resources/assets/src/components/ModalInput.tsx index 4ffff044..80f9b629 100644 --- a/resources/assets/src/components/ModalInput.tsx +++ b/resources/assets/src/components/ModalInput.tsx @@ -13,20 +13,20 @@ export type InternalProps = { readonly onChange?: React.ChangeEventHandler; }; -const ModalInput: React.FC = properties => ( +const ModalInput: React.FC = props => ( <> - {properties.inputType === 'radios' && properties.choices + {props.inputType === 'radios' && props.choices ? ( <> - {properties.choices.map(choice => ( + {props.choices.map(choice => (