1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 19:01:42 +00:00

feat: metadata details settings (#7145)

* feat: metadata details settings

* feat: optimize code

* feat: optimize code

* feat: optimize code

* feat: optimize code

* feat: optimize code

* feat: optimize code

* feat: optimize code

---------

Co-authored-by: 杨国璇 <ygx@Hello-word.local>
Co-authored-by: 杨国璇 <ygx@192.168.1.6>
This commit is contained in:
杨国璇
2024-12-09 16:56:29 +08:00
committed by GitHub
parent 3f6c4f3d26
commit ac124d20ba
45 changed files with 677 additions and 409 deletions

View File

@@ -17,6 +17,7 @@ export const MetadataStatusProvider = ({ repoID, currentRepoInfo, hideMetadataVi
const [enableMetadata, setEnableMetadata] = useState(false);
const [enableTags, setEnableTags] = useState(false);
const [tagsLang, setTagsLang] = useState('en');
const [detailsSettings, setDetailsSettings] = useState({});
const [isBeingBuilt, setIsBeingBuilt] = useState(false);
const cancelMetadataURL = useCallback(() => {
@@ -37,12 +38,13 @@ export const MetadataStatusProvider = ({ repoID, currentRepoInfo, hideMetadataVi
return;
}
metadataAPI.getMetadataStatus(repoID).then(res => {
const { enabled: enableMetadata, tags_enabled: enableTags, tags_lang: tagsLang } = res.data;
const { enabled: enableMetadata, tags_enabled: enableTags, tags_lang: tagsLang, details_settings: detailsSettings } = res.data;
if (!enableMetadata) {
cancelMetadataURL();
}
setEnableTags(enableTags);
setTagsLang(tagsLang || 'en');
setDetailsSettings(JSON.parse(detailsSettings));
setEnableMetadata(enableMetadata);
setLoading(false);
}).catch(error => {
@@ -60,6 +62,7 @@ export const MetadataStatusProvider = ({ repoID, currentRepoInfo, hideMetadataVi
cancelMetadataURL();
setEnableTags(false);
}
setDetailsSettings({});
setIsBeingBuilt(newValue);
setEnableMetadata(newValue);
}, [enableMetadata, cancelMetadataURL]);
@@ -74,6 +77,16 @@ export const MetadataStatusProvider = ({ repoID, currentRepoInfo, hideMetadataVi
setTagsLang(lang);
}, [enableTags, tagsLang, cancelMetadataURL, hideMetadataView]);
const modifyDetailsSettings = useCallback((update) => {
metadataAPI.modifyMetadataDetailsSettings(repoID, update).then(res => {
const newDetailsSettings = { ...detailsSettings, ...update };
setDetailsSettings(newDetailsSettings);
}).catch(error => {
const newDetailsSettings = { ...detailsSettings, ...update };
setDetailsSettings(newDetailsSettings);
});
}, [repoID, detailsSettings]);
return (
<EnableMetadataContext.Provider
value={{
@@ -85,6 +98,8 @@ export const MetadataStatusProvider = ({ repoID, currentRepoInfo, hideMetadataVi
enableTags,
tagsLang,
updateEnableTags,
detailsSettings,
modifyDetailsSettings,
}}
>
{!isLoading && children}