import {createUseStyles} from "react-jss"; import {UButton} from "../../component/button/u-button.tsx"; import React, {useState} from "react"; import {useStore} from "../../store/share.ts"; import {message} from "../../component/message/u-message.tsx"; import {useFileUpload} from "../../api/upload.ts"; const useUploadStyle = createUseStyles({ container: { backgroundColor: "#e3f2fd", display: "flex", justifyContent: "center", alignItems: "center", }, form: { backgroundColor: "#C8E6C9", boxShadow: "inset 0 0 15px rgba(56, 142, 60, 0.15)", padding: "30px", borderRadius: "15px", width: "70%", margin: "20px 60px 20px 0", /*todo margin 不用 px*/ }, title: { color: "#2c9678" }, file: { display: 'none', }, preview: { marginTop: '10px', display: 'flex', }, name: { color: "#2c9678", marginLeft: '10px' }, clean: { borderRadius: '50%', cursor: 'pointer', '&:hover': {} } }) const useShowStyle = createUseStyles({ container: { backgroundColor: "#e3f2fd", display: "flex", justifyContent: "center", alignItems: "center", position: "relative", // 为关闭按钮提供定位基准 }, title: { color: "#2c9678", marginTop: 0, display: "flex", justifyContent: "space-between", alignItems: "center", }, form: { backgroundColor: "#C8E6C9", boxShadow: "inset 0 0 15px rgba(56, 142, 60, 0.15)", padding: "30px", borderRadius: "15px", width: "70%", margin: "20px 60px 20px 0", position: "relative", }, closeButton: { position: "absolute", top: "10px", right: "10px", background: "transparent", color: "white", border: "none", borderRadius: "50%", width: "24px", height: "24px", cursor: "pointer", "&:hover": { // background: "#cc0000", boxShadow: "20px 20px 60px #fff, -20px -20px 60px #fff", // boxShadow: "20px 20px 60px #eee", }, }, codeWrapper: { backgroundColor: "rgba(255,255,255,0.8)", padding: "0 15px", borderRadius: "8px", margin: "15px 0", overflowX: "auto", }, pre: { display: 'flex', flexDirection: 'row', color: 'black', alignItems: 'center', height: '24px', "& > code": { marginLeft: "0", } }, copyButton: { marginLeft: 'auto', background: "#2c9678", color: "white", border: "none", padding: "8px 16px", borderRadius: "4px", cursor: "pointer", transition: "background 0.3s", "&:hover": { background: "#1f6d5a", }, }, }); export const PanelLeft = () => { const [code, set_code] = useState("") if (code) { return } return }; const PanelLeftUpload: React.FC<{ set_code: (code:string) => void }> = ({set_code}) => { const style = useUploadStyle() const {file, setFile} = useStore() const {uploadFile, progress, loading} = useFileUpload(); function onFileSelect() { // @ts-ignore document.querySelector('#real-file-input').click(); } function onFileChange(e: React.ChangeEvent) { console.log('[D] onFileChange: e =', e) setFile(e.currentTarget.files ? e.currentTarget.files[0] : null) } async function onFileUpload() { if (!file) { return } const code = await uploadFile(file) set_code(code) } function onFileClean() { setFile(null) } return

上传文件

{ !file && !loading && 选择文件 } { file && !loading && 上传文件 } { loading && 上传中 } { file &&
×
{file.name}
}
} const PanelLeftShow: React.FC<{ code: string; set_code: (code: string) => void }> = ({ code, set_code }) => { const classes = useShowStyle(); const handleCopy = async () => { try { await navigator.clipboard.writeText(code); message.success("复制成功!"); } catch (err) { message.warning("复制失败,请手动选择文本复制"); } }; return (

上传成功!

                        {code}
                        
                    
); };