Refactor:2 #51

Merged
FatttSnake merged 2 commits from FatttSnake into dev 2024-05-06 16:55:21 +08:00
28 changed files with 194 additions and 193 deletions
Showing only changes of commit 779e0ab2c0 - Show all commits

View File

@@ -76,11 +76,11 @@ export const useEditor = () => {
export const useTypesProgress = () => {
const [progress, setProgress] = useState(0)
const [total, setTotal] = useState(0)
const [finished, setFinished] = useState(false)
const [isFinished, setIsFinished] = useState(false)
const onWatch = (typeHelper: TypeHelper) => {
const handleStarted = () => {
setFinished(false)
setIsFinished(false)
}
typeHelper.addListener('started', handleStarted)
@@ -91,7 +91,7 @@ export const useTypesProgress = () => {
typeHelper.addListener('progress', handleProgress)
const handleFinished = () => {
setFinished(true)
setIsFinished(true)
}
typeHelper.addListener('progress', handleFinished)
@@ -105,7 +105,7 @@ export const useTypesProgress = () => {
return {
progress,
total,
finished,
finished: isFinished,
onWatch
}
}

View File

@@ -31,7 +31,7 @@ const Item = ({
}: ItemProps) => {
const inputRef = useRef<HTMLInputElement>(null)
const [fileName, setFileName] = useState(value)
const [creating, setCreating] = useState(prop.creating)
const [isCreating, setIsCreating] = useState(prop.creating)
const handleOnClick = () => {
if (hasEditing) {
@@ -52,35 +52,35 @@ const Item = ({
}
const finishNameFile = () => {
if (!creating || onValidate ? !onValidate?.(fileName, value) : false) {
if (!isCreating || onValidate ? !onValidate?.(fileName, value) : false) {
inputRef.current?.focus()
return
}
if (fileName === value && active) {
setCreating(false)
setIsCreating(false)
setHasEditing?.(false)
return
}
onOk?.(fileName)
setCreating(false)
setIsCreating(false)
setHasEditing?.(false)
}
const cancelNameFile = () => {
setFileName(value)
setCreating(false)
setIsCreating(false)
setHasEditing?.(false)
onCancel?.()
}
const handleOnDoubleClick = () => {
if (readonly || creating || hasEditing) {
if (readonly || isCreating || hasEditing) {
return
}
setCreating(true)
setIsCreating(true)
setHasEditing?.(true)
setFileName(value)
setTimeout(() => {
@@ -112,7 +112,7 @@ const Item = ({
className={`tab-item${active ? ' active' : ''}${className ? ` ${className}` : ''}`}
onClick={handleOnClick}
>
{creating ? (
{isCreating ? (
<div className={'tab-item-input'}>
<input
ref={inputRef}

View File

@@ -34,7 +34,7 @@ const FileSelector = ({
}: FileSelectorProps) => {
const hideScrollbarRef = useRef<HideScrollbarElement>(null)
const [tabs, setTabs] = useState<string[]>([])
const [creating, setCreating] = useState(false)
const [isCreating, setIsCreating] = useState(false)
const [hasEditing, setHasEditing] = useState(false)
const getMaxSequenceTabName = (filesName: string[]) => {
@@ -56,7 +56,7 @@ const FileSelector = ({
}
setTabs([...tabs, getMaxSequenceTabName(tabs)])
setCreating(true)
setIsCreating(true)
setTimeout(() => {
hideScrollbarRef.current?.scrollRight(1000)
})
@@ -64,16 +64,16 @@ const FileSelector = ({
const handleOnCancel = () => {
onError?.('')
if (!creating) {
if (!isCreating) {
return
}
tabs.pop()
setTabs([...tabs])
setCreating(false)
setIsCreating(false)
}
const handleOnClickTab = (fileName: string) => {
if (creating) {
if (isCreating) {
return
}
@@ -97,9 +97,9 @@ const FileSelector = ({
}
const handleOnSaveTab = (value: string, item: string) => {
if (creating) {
if (isCreating) {
onAddFile?.(value)
setCreating(false)
setIsCreating(false)
} else {
onUpdateFileName?.(value, item)
}
@@ -179,7 +179,7 @@ const FileSelector = ({
key={index + item}
value={item}
active={selectedFileName === item}
creating={creating}
creating={isCreating}
readonly={readonly || notRemovableFiles.includes(item)}
hasEditing={hasEditing}
setHasEditing={setHasEditing}

View File

@@ -42,7 +42,7 @@ const iframeUrl = getIframeUrl(iframeRaw)
const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) => {
const iframeRef = useRef<HTMLIFrameElement>(null)
const [loaded, setLoaded] = useState(false)
const [isLoaded, setIsLoaded] = useState(false)
const [selectedDevice, setSelectedDevice] = useState('Pixel 7')
const [zoom, setZoom] = useState(1)
const [isRotate, setIsRotate] = useState(false)
@@ -148,7 +148,7 @@ const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) =>
}
useEffect(() => {
if (loaded) {
if (isLoaded) {
iframeRef.current?.contentWindow?.postMessage(
{
type: 'UPDATE',
@@ -157,10 +157,10 @@ const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) =>
'*'
)
}
}, [loaded, compiledCode])
}, [isLoaded, compiledCode])
useEffect(() => {
if (loaded) {
if (isLoaded) {
iframeRef.current?.contentWindow?.postMessage(
{
type: 'SCALE',
@@ -169,7 +169,7 @@ const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) =>
'*'
)
}
}, [loaded, zoom])
}, [isLoaded, zoom])
return mobileMode ? (
<>
@@ -202,7 +202,7 @@ const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) =>
key={iframeKey}
ref={iframeRef}
src={iframeUrl}
onLoad={() => setLoaded(true)}
onLoad={() => setIsLoaded(true)}
sandbox="allow-downloads allow-forms allow-modals allow-scripts"
/>
</div>
@@ -244,7 +244,7 @@ const Render = ({ iframeKey, compiledCode, mobileMode = false }: RenderProps) =>
key={iframeKey}
ref={iframeRef}
src={iframeUrl}
onLoad={() => setLoaded(true)}
onLoad={() => setIsLoaded(true)}
sandbox="allow-downloads allow-forms allow-modals allow-scripts"
/>
)

View File

@@ -66,7 +66,7 @@ class Compiler {
})
stop = () => {
esbuild.stop()
void esbuild.stop()
}
private fileResolverPlugin = (

View File

@@ -183,16 +183,16 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
const [verticalScrollbarWidth, setVerticalScrollbarWidth] = useState(0)
const [verticalScrollbarLength, setVerticalScrollbarLength] = useState(100)
const [verticalScrollbarPosition, setVerticalScrollbarPosition] = useState(0)
const [verticalScrollbarOnClick, setVerticalScrollbarOnClick] = useState(false)
const [verticalScrollbarOnTouch, setVerticalScrollbarOnTouch] = useState(false)
const [verticalScrollbarAutoHide, setVerticalScrollbarAutoHide] = useState(false)
const [isVerticalScrollbarOnClick, setIsVerticalScrollbarOnClick] = useState(false)
const [isVerticalScrollbarOnTouch, setIsVerticalScrollbarOnTouch] = useState(false)
const [isVerticalScrollbarAutoHide, setIsVerticalScrollbarAutoHide] = useState(false)
const [horizontalScrollbarWidth, setHorizontalScrollbarWidth] = useState(0)
const [horizontalScrollbarLength, setHorizontalScrollbarLength] = useState(100)
const [horizontalScrollbarPosition, setHorizontalScrollbarPosition] = useState(0)
const [horizontalScrollbarOnClick, setHorizontalScrollbarOnClick] = useState(false)
const [horizontalScrollbarOnTouch, setHorizontalScrollbarOnTouch] = useState(false)
const [horizontalScrollbarAutoHide, setHorizontalScrollbarAutoHide] = useState(false)
const [isHorizontalScrollbarOnClick, setIsHorizontalScrollbarOnClick] = useState(false)
const [isHorizontalScrollbarOnTouch, setIsHorizontalScrollbarOnTouch] = useState(false)
const [isHorizontalScrollbarAutoHide, setIsHorizontalScrollbarAutoHide] = useState(false)
const isPreventAnyScroll =
isPreventScroll || isPreventVerticalScroll || isPreventHorizontalScroll
@@ -201,10 +201,10 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
if (autoHideWaitingTime === undefined) {
return
}
setVerticalScrollbarAutoHide(false)
setIsVerticalScrollbarAutoHide(false)
if (autoHideWaitingTime > 0) {
setTimeout(() => {
setVerticalScrollbarAutoHide(true)
setIsVerticalScrollbarAutoHide(true)
}, autoHideWaitingTime)
}
}, [autoHideWaitingTime, verticalScrollbarPosition])
@@ -213,10 +213,10 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
if (autoHideWaitingTime === undefined) {
return
}
setHorizontalScrollbarAutoHide(false)
setIsHorizontalScrollbarAutoHide(false)
if (autoHideWaitingTime > 0) {
setTimeout(() => {
setHorizontalScrollbarAutoHide(true)
setIsHorizontalScrollbarAutoHide(true)
}, autoHideWaitingTime)
}
}, [autoHideWaitingTime, horizontalScrollbarPosition])
@@ -318,20 +318,20 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
}
switch (scrollbarFlag) {
case 'vertical':
setVerticalScrollbarOnClick(true)
setIsVerticalScrollbarOnClick(true)
break
case 'horizontal':
setHorizontalScrollbarOnClick(true)
setIsHorizontalScrollbarOnClick(true)
break
}
break
case 'up':
case 'leave':
setVerticalScrollbarOnClick(false)
setHorizontalScrollbarOnClick(false)
setIsVerticalScrollbarOnClick(false)
setIsHorizontalScrollbarOnClick(false)
break
case 'move':
if (verticalScrollbarOnClick) {
if (isVerticalScrollbarOnClick) {
rootRef.current?.scrollTo({
top:
rootRef.current?.scrollTop +
@@ -341,7 +341,7 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
behavior: 'instant'
})
}
if (horizontalScrollbarOnClick) {
if (isHorizontalScrollbarOnClick) {
rootRef.current?.scrollTo({
left:
rootRef.current?.scrollLeft +
@@ -372,23 +372,23 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
}
switch (scrollbarFlag) {
case 'vertical':
setVerticalScrollbarOnTouch(true)
setIsVerticalScrollbarOnTouch(true)
break
case 'horizontal':
setHorizontalScrollbarOnTouch(true)
setIsHorizontalScrollbarOnTouch(true)
break
}
break
case 'end':
case 'cancel':
setVerticalScrollbarOnTouch(false)
setHorizontalScrollbarOnTouch(false)
setIsVerticalScrollbarOnTouch(false)
setIsHorizontalScrollbarOnTouch(false)
break
case 'move':
if (event.touches.length !== 1) {
return
}
if (verticalScrollbarOnTouch) {
if (isVerticalScrollbarOnTouch) {
rootRef.current?.scrollTo({
top:
rootRef.current?.scrollTop +
@@ -399,7 +399,7 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
behavior: 'instant'
})
}
if (horizontalScrollbarOnTouch) {
if (isHorizontalScrollbarOnTouch) {
rootRef.current?.scrollTo({
left:
rootRef.current?.scrollLeft +
@@ -571,7 +571,7 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
(!isHiddenVerticalScrollbarWhenFull || verticalScrollbarLength < 100) && (
<div
className={`scrollbar vertical-scrollbar${
verticalScrollbarAutoHide ? ' hide' : ''
isVerticalScrollbarAutoHide ? ' hide' : ''
}`}
style={{
height: maskRef.current
@@ -614,7 +614,7 @@ const HideScrollbar = forwardRef<HideScrollbarElement, HideScrollbarProps>(
horizontalScrollbarLength < 100) && (
<div
className={`scrollbar horizontal-scrollbar${
horizontalScrollbarAutoHide ? ' hide' : ''
isHorizontalScrollbarAutoHide ? ' hide' : ''
}`}
style={{
width: maskRef.current

View File

@@ -7,6 +7,7 @@ interface LoadingMaskProps extends PropsWithChildren {
hidden?: boolean
maskContent?: ReactNode
}
const LoadingMask = (props: LoadingMaskProps) => {
const loadingIcon = (
<>

View File

@@ -10,7 +10,7 @@ const Footer = () => {
const lastMatch = matches.reduce((_, second) => second)
const location = useLocation()
const navigate = useNavigate()
const [exiting, setExiting] = useState(false)
const [isExiting, setIsExiting] = useState(false)
const [nickname, setNickname] = useState('')
const [avatar, setAvatar] = useState('')
@@ -23,11 +23,11 @@ const Footer = () => {
}
const handleLogout = () => {
if (exiting) {
if (isExiting) {
return
}
setExiting(true)
setIsExiting(true)
void r_auth_logout().finally(() => {
removeToken()
notification.info({
@@ -83,8 +83,8 @@ const Footer = () => {
<div className={'content'}>
<span hidden={!getLoginStatus()} className={'icon-exit'} onClick={handleLogout}>
<Icon
component={exiting ? IconOxygenLoading : IconOxygenExit}
spin={exiting}
component={isExiting ? IconOxygenLoading : IconOxygenExit}
spin={isExiting}
/>
</span>
</div>

View File

@@ -17,18 +17,18 @@ interface SidebarProps extends PropsWithChildren {
}
const Sidebar = (props: SidebarProps) => {
const [hideSidebar, setHideSidebar] = useState(getLocalStorage('HIDE_SIDEBAR') === 'true')
const [isHideSidebar, setIsHideSidebar] = useState(getLocalStorage('HIDE_SIDEBAR') === 'true')
const switchSidebar = () => {
setLocalStorage('HIDE_SIDEBAR', !hideSidebar ? 'true' : 'false')
setHideSidebar(!hideSidebar)
props.onSidebarSwitch?.(hideSidebar)
setLocalStorage('HIDE_SIDEBAR', !isHideSidebar ? 'true' : 'false')
setIsHideSidebar(!isHideSidebar)
props.onSidebarSwitch?.(isHideSidebar)
}
return (
<>
<div
className={`sidebar${hideSidebar ? ' hide' : ''}`}
className={`sidebar${isHideSidebar ? ' hide' : ''}`}
style={{ width: props.width ?? 'clamp(180px, 20vw, 240px)' }}
>
<div className={'title'}>

View File

@@ -50,7 +50,7 @@ const Group = () => {
const [isRegexLegal, setIsRegexLegal] = useState(true)
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [isDrawerEdit, setIsDrawerEdit] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [roleData, setRoleData] = useState<RoleVo[]>([])
const [isLoadingRole, setIsLoadingRole] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
@@ -471,10 +471,10 @@ const Group = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
@@ -589,7 +589,7 @@ const Group = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>

View File

@@ -10,7 +10,7 @@ import FlexBox from '@/components/common/FlexBox'
const Log = () => {
const [logData, setLogData] = useState<SysLogGetVo[]>([])
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [tableParams, setTableParams] = useState<TableParam>({
pagination: {
current: 1,
@@ -181,11 +181,11 @@ const Log = () => {
}
const getLog = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void r_sys_log_get({
currentPage: tableParams.pagination?.current,
@@ -218,7 +218,7 @@ const Log = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
})
}
@@ -276,7 +276,7 @@ const Log = () => {
columns={dataColumns}
rowKey={(record) => record.id}
pagination={tableParams.pagination}
loading={loading}
loading={isLoading}
onChange={handleOnTableChange}
/>
</Card>

View File

@@ -50,7 +50,7 @@ const Role = () => {
const [isRegexLegal, setIsRegexLegal] = useState(true)
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [isDrawerEdit, setIsDrawerEdit] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [powerTreeData, setPowerTreeData] = useState<_DataNode[]>([])
const [isLoadingPower, setIsLoadingPower] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
@@ -480,10 +480,10 @@ const Role = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
@@ -598,7 +598,7 @@ const Role = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>

View File

@@ -5,7 +5,7 @@ import SettingsCard from '@/components/system/SettingCard'
const Base = () => {
const [baseForm] = AntdForm.useForm<BaseSettingsParam>()
const baseFormValues = AntdForm.useWatch([], baseForm)
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const handleOnReset = () => {
getBaseSettings()
@@ -24,17 +24,17 @@ const Base = () => {
}
const getBaseSettings = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void r_sys_settings_base_get().then((res) => {
const response = res.data
if (response.success) {
const data = response.data
data && baseForm.setFieldsValue(data)
setLoading(false)
setIsLoading(false)
}
})
}
@@ -48,7 +48,7 @@ const Base = () => {
<SettingsCard
icon={IconOxygenBase}
title={'基础'}
loading={loading}
loading={isLoading}
onReset={handleOnReset}
onSave={handleOnSave}
modifyOperationCode={['system:settings:modify:base']}

View File

@@ -11,7 +11,7 @@ const Mail = () => {
const [modal, contextHolder] = AntdModal.useModal()
const [mailForm] = AntdForm.useForm<MailSettingsParam>()
const mailFormValues = AntdForm.useWatch([], mailForm)
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [mailSendForm] = AntdForm.useForm<MailSendParam>()
const handleOnTest = () => {
@@ -95,17 +95,17 @@ const Mail = () => {
}
const getMailSettings = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void r_sys_settings_mail_get().then((res) => {
const response = res.data
if (response.success) {
const data = response.data
data && mailForm.setFieldsValue(data)
setLoading(false)
setIsLoading(false)
}
})
}
@@ -119,7 +119,7 @@ const Mail = () => {
<SettingsCard
icon={IconOxygenEmail}
title={'邮件'}
loading={loading}
loading={isLoading}
onReset={handleOnReset}
onSave={handleOnSave}
modifyOperationCode={['system:settings:modify:mail']}

View File

@@ -13,7 +13,7 @@ const SensitiveWord = () => {
const [dataSource, setDataSource] = useState<SensitiveWordVo[]>()
const [targetKeys, setTargetKeys] = useState<string[]>([])
const [selectedKeys, setSelectedKeys] = useState<string[]>([])
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [isAdding, setIsAdding] = useState(false)
const [newWord, setNewWord] = useState('')
@@ -47,10 +47,10 @@ const SensitiveWord = () => {
}
const getSensitiveWordSettings = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void r_sys_settings_sensitive_get().then((res) => {
const response = res.data
@@ -58,7 +58,7 @@ const SensitiveWord = () => {
const data = response.data
data && setDataSource(data)
data && setTargetKeys(data.filter((value) => value.enable).map((value) => value.id))
setLoading(false)
setIsLoading(false)
}
})
}
@@ -103,7 +103,7 @@ const SensitiveWord = () => {
<SettingsCard
icon={IconOxygenSensitive}
title={'敏感词'}
loading={loading}
loading={isLoading}
onReset={handleOnReset}
onSave={handleOnSave}
modifyOperationCode={['system:settings:modify:sensitive']}

View File

@@ -5,7 +5,7 @@ import SettingsCard from '@/components/system/SettingCard'
const TwoFactor = () => {
const [twoFactorForm] = AntdForm.useForm<TwoFactorSettingsParam>()
const twoFactorFormValues = AntdForm.useWatch([], twoFactorForm)
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const handleOnReset = () => {
getTwoFactorSettings()
@@ -24,17 +24,17 @@ const TwoFactor = () => {
}
const getTwoFactorSettings = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void r_sys_settings_two_factor_get().then((res) => {
const response = res.data
if (response.success) {
const data = response.data
data && twoFactorForm.setFieldsValue(data)
setLoading(false)
setIsLoading(false)
}
})
}
@@ -48,7 +48,7 @@ const TwoFactor = () => {
<SettingsCard
icon={IconOxygenSafe}
title={'双因素'}
loading={loading}
loading={isLoading}
onReset={handleOnReset}
onSave={handleOnSave}
modifyOperationCode={['system:settings:modify:two-factor']}

View File

@@ -60,7 +60,7 @@ const Base = () => {
const [isLoading, setIsLoading] = useState(false)
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [isDrawerEdit, setIsDrawerEdit] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
const [editingBaseId, setEditingBaseId] = useState<string>('')
const [editingFiles, setEditingFiles] = useState<Record<string, IFiles>>({})
@@ -70,7 +70,7 @@ const Base = () => {
const [baseDetailData, setBaseDetailData] = useState<Record<string, ToolBaseVo>>({})
const [baseDetailLoading, setBaseDetailLoading] = useState<Record<string, boolean>>({})
const [tsconfig, setTsconfig] = useState<ITsconfig>()
const [compiling, setCompiling] = useState(false)
const [isCompiling, setIsCompiling] = useState(false)
const [compileForm] = AntdForm.useForm<{ entryFileName: string }>()
useBeforeUnload(
@@ -220,10 +220,10 @@ const Base = () => {
const handleOnCompileBtnClick = (value: ToolBaseVo) => {
return () => {
if (compiling || isLoading) {
if (isCompiling || isLoading) {
return
}
setCompiling(true)
setIsCompiling(true)
setIsLoading(true)
void message.loading({ content: '加载文件中', key: 'COMPILE_LOADING', duration: 0 })
@@ -263,7 +263,7 @@ const Base = () => {
const files = base64ToFiles(baseDetail!.source.data!)
if (!Object.keys(files).includes(IMPORT_MAP_FILE_NAME)) {
void message.warning(`编译中止:未包含 ${IMPORT_MAP_FILE_NAME} 文件`)
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
return
}
@@ -272,7 +272,7 @@ const Base = () => {
importMap = JSON.parse(files[IMPORT_MAP_FILE_NAME].value) as IImportMap
} catch (e) {
void message.warning(`编译中止Import Map 文件转换失败`)
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
return
}
@@ -353,14 +353,14 @@ const Base = () => {
})
.finally(() => {
message.destroy('UPLOADING')
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
})
})
.catch((e: Error) => {
void message.error(`编译失败:${e.message}`)
message.destroy('COMPILING')
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
})
})
@@ -372,13 +372,13 @@ const Base = () => {
}
),
onCancel: () => {
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
}
})
})
.catch(() => {
setCompiling(false)
setIsCompiling(false)
setIsLoading(false)
message.destroy('COMPILE_LOADING')
})
@@ -1002,10 +1002,10 @@ const Base = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
@@ -1034,7 +1034,7 @@ const Base = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>

View File

@@ -27,7 +27,7 @@ const Category = () => {
const [isLoading, setIsLoading] = useState(false)
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [isDrawerEdit, setIsDrawerEdit] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
const handleOnAddBtnClick = () => {
@@ -230,10 +230,10 @@ const Category = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
@@ -256,7 +256,7 @@ const Category = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>

View File

@@ -15,7 +15,7 @@ const Code = () => {
const navigate = useNavigate()
const [modal, contextHolder] = AntdModal.useModal()
const { id } = useParams()
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [files, setFiles] = useState<IFiles>({})
const [selectedFileName, setSelectedFileName] = useState('')
const [platform, setPlatform] = useState<Platform>('WEB')
@@ -47,10 +47,10 @@ const Code = () => {
}
const getTool = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载中……', key: 'LOADING', duration: 0 })
void r_sys_tool_get_one(id!)
@@ -69,7 +69,7 @@ const Code = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}

View File

@@ -12,7 +12,7 @@ import { base64ToFiles, base64ToStr, IMPORT_MAP_FILE_NAME } from '@/components/P
const Execute = () => {
const navigate = useNavigate()
const { id } = useParams()
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [compiledCode, setCompiledCode] = useState('')
const render = (toolVo: ToolVo) => {
@@ -39,10 +39,10 @@ const Execute = () => {
}
const getTool = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载中……', key: 'LOADING', duration: 0 })
void r_sys_tool_get_one(id!)
@@ -61,7 +61,7 @@ const Execute = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}

View File

@@ -60,7 +60,7 @@ const Template = () => {
const [isDrawerEdit, setIsDrawerEdit] = useState(false)
const [baseData, setBaseData] = useState<ToolBaseVo[]>([])
const [isLoadingBaseData, setIsLoadingBaseData] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
const [editingTemplateId, setEditingTemplateId] = useState<string>('')
const [editingFiles, setEditingFiles] = useState<Record<string, IFiles>>({})
@@ -884,10 +884,10 @@ const Template = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
@@ -972,7 +972,7 @@ const Template = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>

View File

@@ -29,13 +29,13 @@ const Create = () => {
const [categoryData, setCategoryData] = useState<ToolCategoryVo[]>()
const [templateDetailData, setTemplateDetailData] = useState<Record<string, ToolTemplateVo>>({})
const [previewTemplate, setPreviewTemplate] = useState('')
const [loadingTemplate, setLoadingTemplate] = useState(false)
const [loadingCategory, setLoadingCategory] = useState(false)
const [creating, setCreating] = useState(false)
const [isLoadingTemplate, setIsLoadingTemplate] = useState(false)
const [isLoadingCategory, setIsLoadingCategory] = useState(false)
const [isCreating, setIsCreating] = useState(false)
const [compiledCode, setCompiledCode] = useState('')
const handleOnFinish = (toolAddParam: ToolCreateParam) => {
setCreating(true)
setIsCreating(true)
void r_tool_create(toolAddParam)
.then((res) => {
@@ -49,15 +49,15 @@ const Create = () => {
break
case DATABASE_DUPLICATE_KEY:
void message.warning('已存在相同 ID 的应用')
setCreating(false)
setIsCreating(false)
break
default:
void message.error('创建失败,请稍后重试')
setCreating(false)
setIsCreating(false)
}
})
.catch(() => {
setCreating(false)
setIsCreating(false)
})
}
@@ -84,7 +84,7 @@ const Create = () => {
}
const handleOnPlatformChange = (value: string) => {
setLoadingTemplate(true)
setIsLoadingTemplate(true)
void r_tool_template_get({
platform: value
})
@@ -103,7 +103,7 @@ const Create = () => {
}
})
.finally(() => {
setLoadingTemplate(false)
setIsLoadingTemplate(false)
})
}
@@ -113,7 +113,7 @@ const Create = () => {
return
}
setLoadingTemplate(true)
setIsLoadingTemplate(true)
void r_tool_template_get_one(value)
.then((res) => {
const response = res.data
@@ -126,7 +126,7 @@ const Create = () => {
}
})
.finally(() => {
setLoadingTemplate(false)
setIsLoadingTemplate(false)
})
}
@@ -167,7 +167,7 @@ const Create = () => {
}, [form, formValues?.keywords])
useEffect(() => {
setLoadingCategory(true)
setIsLoadingCategory(true)
void r_tool_category_get()
.then((res) => {
const response = res.data
@@ -180,7 +180,7 @@ const Create = () => {
}
})
.finally(() => {
setLoadingCategory(false)
setIsLoadingCategory(false)
})
}, [])
@@ -198,7 +198,7 @@ const Create = () => {
form={form}
layout={'vertical'}
onFinish={handleOnFinish}
disabled={creating}
disabled={isCreating}
>
<AntdForm.Item
label={'图标'}
@@ -319,8 +319,8 @@ const Create = () => {
value: value.id,
label: value.name
}))}
loading={loadingTemplate}
disabled={loadingTemplate}
loading={isLoadingTemplate}
disabled={isLoadingTemplate}
onChange={handleOnTemplateChange}
placeholder={'请选择模板'}
/>
@@ -349,8 +349,8 @@ const Create = () => {
value: value.id,
label: value.name
}))}
loading={loadingCategory}
disabled={loadingCategory}
loading={isLoadingCategory}
disabled={isLoadingCategory}
placeholder={'请选择类别'}
/>
</AntdForm.Item>
@@ -359,7 +359,7 @@ const Create = () => {
className={'create-bt'}
type={'primary'}
htmlType={'submit'}
loading={creating}
loading={isCreating}
>
</AntdButton>

View File

@@ -36,7 +36,7 @@ const Edit = () => {
})
const [form] = AntdForm.useForm<ToolUpdateParam>()
const formValues = AntdForm.useWatch([], form)
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [toolData, setToolData] = useState<ToolVo>()
const [files, setFiles] = useState<IFiles>({})
const [selectedFileName, setSelectedFileName] = useState('')
@@ -46,13 +46,13 @@ const Edit = () => {
const [tsconfig, setTsconfig] = useState<ITsconfig>()
const [entryPoint, setEntryPoint] = useState('')
const [baseDist, setBaseDist] = useState('')
const [showDraggableMask, setShowDraggableMask] = useState(false)
const [isShowDraggableMask, setIsShowDraggableMask] = useState(false)
const [isDrawerOpen, setIsDrawerOpen] = useState(false)
const [submittable, setSubmittable] = useState(false)
const [isSubmittable, setIsSubmittable] = useState(false)
const [isSubmitting, setIsSubmitting] = useState(false)
const [hasEdited, setHasEdited] = useState(false)
const [categoryData, setCategoryData] = useState<ToolCategoryVo[]>()
const [loadingCategory, setLoadingCategory] = useState(false)
const [isLoadingCategory, setIsLoadingCategory] = useState(false)
useBeforeUnload(
useCallback(
@@ -196,10 +196,10 @@ const Edit = () => {
}
const getCategory = () => {
if (loadingCategory) {
if (isLoadingCategory) {
return
}
setLoadingCategory(true)
setIsLoadingCategory(true)
void r_tool_category_get()
.then((res) => {
@@ -213,15 +213,15 @@ const Edit = () => {
}
})
.finally(() => {
setLoadingCategory(false)
setIsLoadingCategory(false)
})
}
const getTool = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载中……', key: 'LOADING', duration: 0 })
void r_tool_detail('!', toolId!, 'latest', searchParams.get('platform') as Platform)
@@ -253,7 +253,7 @@ const Edit = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}
@@ -299,10 +299,10 @@ const Edit = () => {
useEffect(() => {
form.validateFields({ validateOnly: true }).then(
() => {
setSubmittable(true)
setIsSubmittable(true)
},
() => {
setSubmittable(false)
setIsSubmittable(false)
}
)
}, [formValues])
@@ -327,7 +327,7 @@ const Edit = () => {
</AntdButton>
<AntdButton
type={'primary'}
disabled={!submittable}
disabled={!isSubmittable}
loading={isSubmitting}
onClick={handleOnSubmit}
>
@@ -408,8 +408,8 @@ const Edit = () => {
value: value.id,
label: value.name
}))}
loading={loadingCategory}
disabled={loadingCategory}
loading={isLoadingCategory}
disabled={isLoadingCategory}
placeholder={'请选择类别'}
/>
</AntdForm.Item>
@@ -421,7 +421,7 @@ const Edit = () => {
<FitFullscreen data-component={'tools-edit'}>
<Card>
<FlexBox direction={'horizontal'} className={'root-content'}>
<LoadingMask hidden={!loading}>
<LoadingMask hidden={!isLoading}>
<Playground.CodeEditor
tsconfig={tsconfig}
files={{
@@ -454,12 +454,12 @@ const Edit = () => {
mobileMode={toolData?.platform === 'ANDROID'}
/>
</LoadingMask>
{showDraggableMask && <div className={'draggable-mask'} />}
{isShowDraggableMask && <div className={'draggable-mask'} />}
</FlexBox>
</Card>
<Draggable
onStart={() => setShowDraggableMask(true)}
onStop={() => setShowDraggableMask(false)}
onStart={() => setIsShowDraggableMask(true)}
onStop={() => setIsShowDraggableMask(false)}
bounds={'#root'}
>
<div className={'draggable-content'}>

View File

@@ -15,7 +15,7 @@ const Source = () => {
const [searchParams] = useSearchParams({
platform: import.meta.env.VITE_PLATFORM
})
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [files, setFiles] = useState<IFiles>({})
const [selectedFileName, setSelectedFileName] = useState('')
@@ -29,10 +29,10 @@ const Source = () => {
}
const getTool = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载中……', key: 'LOADING', duration: 0 })
void r_tool_detail(
@@ -56,7 +56,7 @@ const Source = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}

View File

@@ -15,7 +15,7 @@ const Store = () => {
const [currentPage, setCurrentPage] = useState(0)
const [hasNextPage, setHasNextPage] = useState(false)
const [toolData, setToolData] = useState<ToolVo[]>([])
const [hideSearch, setHideSearch] = useState(false)
const [isHideSearch, setIsHideSearch] = useState(false)
const [searchValue, setSearchValue] = useState('')
const handleOnSearch = (value: string) => {
@@ -25,9 +25,9 @@ const Store = () => {
const handleOnScroll = (event: UIEvent<HTMLDivElement>) => {
if (event.currentTarget.scrollTop < scrollTopRef.current) {
setHideSearch(false)
setIsHideSearch(false)
} else {
setHideSearch(true)
setIsHideSearch(true)
}
scrollTopRef.current = event.currentTarget.scrollTop
}
@@ -89,7 +89,7 @@ const Store = () => {
autoHideWaitingTime={1000}
onScroll={handleOnScroll}
>
<div className={`search${hideSearch ? ' hide' : ''}`}>
<div className={`search${isHideSearch ? ' hide' : ''}`}>
<AntdInput.Search
enterButton
allowClear

View File

@@ -16,7 +16,7 @@ const View = () => {
const [searchParams] = useSearchParams({
platform: import.meta.env.VITE_PLATFORM
})
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [compiledCode, setCompiledCode] = useState('')
const [isAndroid, setIsAndroid] = useState(false)
@@ -58,10 +58,10 @@ const View = () => {
}
const getTool = () => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载中……', key: 'LOADING', duration: 0 })
void r_tool_detail(
@@ -85,7 +85,7 @@ const View = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}

View File

@@ -208,7 +208,7 @@ const ToolCard = ({ tools, onDelete, onUpgrade, onSubmit, onCancel }: ToolCardPr
const Tools = () => {
const navigate = useNavigate()
const [modal, contextHolder] = AntdModal.useModal()
const [loading, setLoading] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const [currentPage, setCurrentPage] = useState(0)
const [hasNextPage, setHasNextPage] = useState(false)
const [toolData, setToolData] = useState<ToolVo[]>([])
@@ -228,7 +228,7 @@ const Tools = () => {
.then(
(confirmed) => {
if (confirmed) {
setLoading(true)
setIsLoading(true)
void r_tool_delete(tool.id)
.then((res) => {
@@ -241,7 +241,7 @@ const Tools = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
})
}
},
@@ -371,7 +371,7 @@ const Tools = () => {
.then(
(confirmed) => {
if (confirmed) {
setLoading(true)
setIsLoading(true)
void r_tool_submit(tool.id)
.then((res) => {
@@ -392,7 +392,7 @@ const Tools = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
})
}
},
@@ -411,7 +411,7 @@ const Tools = () => {
.then(
(confirmed) => {
if (confirmed) {
setLoading(true)
setIsLoading(true)
void r_tool_cancel(tool.id)
.then((res) => {
@@ -431,7 +431,7 @@ const Tools = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
getTool(1)
})
}
@@ -441,24 +441,24 @@ const Tools = () => {
}
const handleOnLoadMore = () => {
if (loading) {
if (isLoading) {
return
}
getTool(currentPage + 1)
}
const handleOnLoadMoreStar = () => {
if (loading) {
if (isLoading) {
return
}
getStarTool(currentStarPage + 1)
}
const getTool = (page: number) => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载工具列表中', key: 'LOADING', duration: 0 })
void r_tool_get({ currentPage: page })
@@ -487,7 +487,7 @@ const Tools = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
if (currentStarPage === 0) {
getStarTool(1)
@@ -496,10 +496,10 @@ const Tools = () => {
}
const getStarTool = (page: number) => {
if (loading) {
if (isLoading) {
return
}
setLoading(true)
setIsLoading(true)
void message.loading({ content: '加载收藏列表中', key: 'LOADING', duration: 0 })
void r_tool_get_favorite({ currentPage: page })
@@ -528,7 +528,7 @@ const Tools = () => {
}
})
.finally(() => {
setLoading(false)
setIsLoading(false)
message.destroy('LOADING')
})
}

View File

@@ -18,12 +18,12 @@ const ToolsFramework = () => {
const [isDelete, setIsDelete] = useState(false)
const [toolMenuItem, setToolMenuItem] = useState<ToolMenuItem[]>(getToolMenuItem)
const [activeItem, setActiveItem] = useState<ToolMenuItem | null>(null)
const [showDropMask, setShowDropMask] = useState(false)
const [isShowDropMask, setIsShowDropMask] = useState(false)
const handleOnDragStart = ({ active }: DragStartEvent) => {
setActiveItem(active.data.current as ToolMenuItem)
if (!active.data.current?.sortable) {
setShowDropMask(true)
setIsShowDropMask(true)
}
}
@@ -73,7 +73,7 @@ const ToolsFramework = () => {
}
setActiveItem(null)
setShowDropMask(false)
setIsShowDropMask(false)
}
const handleOnDragCancel = () => {
@@ -174,7 +174,7 @@ const ToolsFramework = () => {
</DraggableOverlay>
</Sidebar.ItemList>
</Sidebar.Scroll>
{showDropMask && <DropMask />}
{isShowDropMask && <DropMask />}
</Droppable>
</Sidebar>
</div>