Replace canSelect state with derived dataReady check

This commit is contained in:
CPTProgrammer 2026-07-19 10:20:46 +08:00
parent 6b32cafeeb
commit 7c10e4b168
No known key found for this signature in database

View File

@ -170,8 +170,6 @@ export function PublishModal({
CurseForgeFile[] CurseForgeFile[]
>([]); >([]);
const [canSelect, setCanSelect] = useState(false);
const loadExisting = useCallback(async () => { const loadExisting = useCallback(async () => {
setLoadingExisting(true); setLoadingExisting(true);
try { try {
@ -307,8 +305,6 @@ export function PublishModal({
.sort((a, b) => compareParsed(a.parsed, b.parsed)) .sort((a, b) => compareParsed(a.parsed, b.parsed))
.map((e) => e.row); .map((e) => e.row);
if (!loadingExisting) setCanSelect(true);
return [...pending, ...existing]; return [...pending, ...existing];
}, [publishVersions, modrinthExistingVersions, matchedMrNames, config.modrinth.version]); }, [publishVersions, modrinthExistingVersions, matchedMrNames, config.modrinth.version]);
@ -384,8 +380,12 @@ export function PublishModal({
initRef.current = false; initRef.current = false;
} }
}, [open]); }, [open]);
const dataReady =
!loadingExisting &&
modrinthMcVersions.length > 0 &&
curseforgeMcVersions.length > 0;
useEffect(() => { useEffect(() => {
if (canSelect && publishVersions.length > 0 && !initRef.current) { if (dataReady && publishVersions.length > 0 && !initRef.current) {
initRef.current = true; initRef.current = true;
setSelectedModrinth( setSelectedModrinth(
publishVersions.filter((v) => !v.existsModrinth).map((v) => v.key), publishVersions.filter((v) => !v.existsModrinth).map((v) => v.key),
@ -393,8 +393,9 @@ export function PublishModal({
setSelectedCurseforge( setSelectedCurseforge(
publishVersions.filter((v) => !v.existsCurseforge).map((v) => v.key), publishVersions.filter((v) => !v.existsCurseforge).map((v) => v.key),
); );
console.log(selectedModrinth, selectedCurseforge);
} }
}, [canSelect, publishVersions]); }, [dataReady, publishVersions]);
// --------------- Steps handling --------------- // --------------- Steps handling ---------------
@ -595,7 +596,7 @@ export function PublishModal({
} }
rowSelection={{ rowSelection={{
selectedRowKeys: selectedModrinth, selectedRowKeys: selectedModrinth,
onChange: (keys) => setSelectedModrinth(keys as string[]), onChange: (keys) => {setSelectedModrinth(keys as string[]); console.log(selectedModrinth);},
getCheckboxProps: (r: ModrinthTableRow) => ({ getCheckboxProps: (r: ModrinthTableRow) => ({
disabled: disabled:
r.kind === "existing" || r.kind === "existing" ||
@ -630,7 +631,7 @@ export function PublishModal({
} }
rowSelection={{ rowSelection={{
selectedRowKeys: selectedCurseforge, selectedRowKeys: selectedCurseforge,
onChange: (keys) => setSelectedCurseforge(keys as string[]), onChange: (keys) => {setSelectedCurseforge(keys as string[]); console.log(selectedCurseforge);},
getCheckboxProps: (r: CurseforgeTableRow) => ({ getCheckboxProps: (r: CurseforgeTableRow) => ({
disabled: disabled:
r.kind === "existing" || r.kind === "existing" ||