From baefaf51cc140c4b7ba815dcaff9ca204d8dd78a Mon Sep 17 00:00:00 2001 From: Zephyr Lykos Date: Sun, 19 Jan 2025 22:10:05 +0800 Subject: [PATCH] cleanup: wip 6.2 --- resources/assets/src/index.tsx | 13 +++++----- resources/assets/src/views/skinlib/Upload.tsx | 20 +++++++++------- .../src/views/user/Closet/Previewer.tsx | 24 +++++++++++-------- .../src/views/user/Players/Previewer.tsx | 6 ++--- 4 files changed, 36 insertions(+), 27 deletions(-) diff --git a/resources/assets/src/index.tsx b/resources/assets/src/index.tsx index 50560ff5..fe945cf8 100644 --- a/resources/assets/src/index.tsx +++ b/resources/assets/src/index.tsx @@ -6,7 +6,7 @@ import routes from './scripts/route'; import './scripts/app'; -// eslint-disable-next-line @typescript-eslint/naming-convention +// eslint-disable-next-line ts/naming-convention Object.assign(window, {React, ReactDOM, $}); const route = routes.find(route => @@ -24,11 +24,12 @@ if (route) { : null; const root = createRoot(container!); - root.render( - + root.render(( + - - - ,); + + + + )); } } diff --git a/resources/assets/src/views/skinlib/Upload.tsx b/resources/assets/src/views/skinlib/Upload.tsx index d3a9f64d..41e0a54f 100644 --- a/resources/assets/src/views/skinlib/Upload.tsx +++ b/resources/assets/src/views/skinlib/Upload.tsx @@ -9,8 +9,8 @@ import {showModal, toast} from '@/scripts/notify'; import {isAlex} from '@/scripts/textureUtils'; import {TextureType} from '@/scripts/types'; import urls from '@/scripts/urls'; -import React, {useState} from 'react'; -import ReactDOM from 'react-dom'; +import {Suspense, useState} from 'react'; +import {createPortal} from 'react-dom'; const Previewer = React.lazy(async () => import('@/components/Viewer')); @@ -19,7 +19,7 @@ function Upload() { const [type, setType] = useState(TextureType.Steve); const [isPrivate, setIsPrivate] = useState(false); const [isUploading, setIsUploading] = useState(false); - const [file, setFile] = useState(null); + const [file, setFile] = useState(); const [texture, setTexture] = useState(''); const nameRule = useBlessingExtra('rule'); const contentPolicy = useBlessingExtra('contentPolicy'); @@ -47,9 +47,13 @@ function Upload() { }; const handleFileChange = async (event: React.ChangeEvent) => { - const files = event.target.files!; + const {files} = event.target; + if (!files) { + return; + } + const [file] = files; - if (file) { + if (file !== undefined) { setFile(file); if (!name && file.name.endsWith('.png')) { setName(file.name.slice(0, -4)); @@ -239,14 +243,14 @@ function Upload() { {container - && ReactDOM.createPortal( - }> + && createPortal( + }> - , + , container, )} diff --git a/resources/assets/src/views/user/Closet/Previewer.tsx b/resources/assets/src/views/user/Closet/Previewer.tsx index af5a15bd..97832bfb 100644 --- a/resources/assets/src/views/user/Closet/Previewer.tsx +++ b/resources/assets/src/views/user/Closet/Previewer.tsx @@ -1,31 +1,35 @@ +import type {FC, ReactNode} from 'react'; import ViewerSkeleton from '@/components/ViewerSkeleton'; import useMount from '@/scripts/hooks/useMount'; -import React from 'react'; -import ReactDOM from 'react-dom'; +import { + lazy, + Suspense, +} from 'react'; +import {createPortal} from 'react-dom'; -const Viewer = React.lazy(async () => import('@/components/Viewer')); +const Viewer = lazy(async () => import('@/components/Viewer')); type Props = { skin?: string; cape?: string; - children: React.ReactNode; + children: ReactNode; isAlex: boolean; }; -const Previewer: React.FC = props => { +const Previewer: FC = props => { const container = useMount('#previewer'); - const skin = props.skin ? `${blessing.base_url}/textures/${props.skin}` : ''; - const cape = props.cape ? `${blessing.base_url}/textures/${props.cape}` : ''; + const skin = props.skin === undefined ? '' : `${blessing.base_url}/textures/${props.skin}`; + const cape = props.cape === undefined ? '' : `${blessing.base_url}/textures/${props.cape}`; return ( container - && ReactDOM.createPortal( - }> + && createPortal( + }> {props.children} - , + , container, ) ); diff --git a/resources/assets/src/views/user/Players/Previewer.tsx b/resources/assets/src/views/user/Players/Previewer.tsx index 75eebcaf..0a12591e 100644 --- a/resources/assets/src/views/user/Players/Previewer.tsx +++ b/resources/assets/src/views/user/Players/Previewer.tsx @@ -2,7 +2,7 @@ import ViewerSkeleton from '@/components/ViewerSkeleton'; import useMount from '@/scripts/hooks/useMount'; import {t} from '@/scripts/i18n'; import React, {useState} from 'react'; -import ReactDOM from 'react-dom'; +import {createPortal} from 'react-dom'; import Viewer2d from './Viewer2d'; const Viewer3d = React.lazy(async () => import('@/components/Viewer')); @@ -23,7 +23,7 @@ const Previewer: React.FC = props => { }; const switcher = ( - ); @@ -32,7 +32,7 @@ const Previewer: React.FC = props => { return ( container - && ReactDOM.createPortal( + && createPortal( is3d ? ( }>