diff --git a/assets/jsons/translations/de.json b/assets/jsons/translations/de.json index a11c8e15..d8d751af 100644 --- a/assets/jsons/translations/de.json +++ b/assets/jsons/translations/de.json @@ -586,7 +586,8 @@ "buttons": { "add-folder": "Ordner Hinzufügen", "link-folder": "Ordner Verknüpfen", - "unlink-folder": "Ordner Verknüpfung Aufheben" + "unlink-folder": "Ordner Verknüpfung Aufheben", + "link-all": "Alle verlinken" } } }, diff --git a/assets/jsons/translations/en.json b/assets/jsons/translations/en.json index 7e3da70c..d46dc2c1 100644 --- a/assets/jsons/translations/en.json +++ b/assets/jsons/translations/en.json @@ -586,7 +586,8 @@ "buttons": { "add-folder": "Add Folder", "link-folder": "Link Folder", - "unlink-folder": "Unlink Folder" + "unlink-folder": "Unlink Folder", + "link-all": "Link all" } } }, diff --git a/assets/jsons/translations/es.json b/assets/jsons/translations/es.json index c5d35860..ff8e5aaa 100644 --- a/assets/jsons/translations/es.json +++ b/assets/jsons/translations/es.json @@ -585,7 +585,8 @@ "buttons": { "add-folder": "Añadir Carpeta", "link-folder": "Enlazar Carpeta", - "unlink-folder": "Desenlazar Carpeta" + "unlink-folder": "Desenlazar Carpeta", + "link-all": "Enlazar todo" } } }, diff --git a/assets/jsons/translations/fr.json b/assets/jsons/translations/fr.json index e3519357..15966f7e 100644 --- a/assets/jsons/translations/fr.json +++ b/assets/jsons/translations/fr.json @@ -585,7 +585,8 @@ "buttons": { "add-folder": "Ajouter un dossier", "link-folder": "Lier le dossier", - "unlink-folder": "Délier le dossier" + "unlink-folder": "Délier le dossier", + "link-all": "Tout lier" } } }, diff --git a/src/renderer/components/modal/modal-types/share-folders-modal.component.tsx b/src/renderer/components/modal/modal-types/share-folders-modal.component.tsx index 2467c279..bed4e578 100644 --- a/src/renderer/components/modal/modal-types/share-folders-modal.component.tsx +++ b/src/renderer/components/modal/modal-types/share-folders-modal.component.tsx @@ -67,6 +67,10 @@ export const ShareFoldersModal: ModalComponent = ({ data }) => setFolders((prev) => prev.filter((_, i) => i !== index)); } + const linkAll = () => { + folders.forEach(relativeFolder => linker.linkVersionFolder({ version: data, relativeFolder, type: VersionLinkerActionType.Link })) + } + return (

{t("modals.shared-folders.title")}

@@ -76,14 +80,16 @@ export const ShareFoldersModal: ModalComponent = ({ data }) => {removeFolder(index)}}/> ))} -
- - {t("modals.shared-folders.buttons.add-folder")} +
+ +
) } +// -------- FOLDER ITEM -------- + type FolderProps = { version: BSVersion; relativeFolder: string; @@ -111,8 +117,9 @@ const FolderItem = ({version, relativeFolder, onDelete}: FolderProps) => { const [linked, setLinked] = useState(false); useEffect(() => { + if(pending){ return; } loadFolderIsLinked(); - }, [version, relativeFolder]); + }, [version, relativeFolder, pending]); const loadFolderIsLinked = () => { linker.isVersionFolderLinked(version, relativeFolder).toPromise().then(setLinked); @@ -124,13 +131,14 @@ const FolderItem = ({version, relativeFolder, onDelete}: FolderProps) => { version, relativeFolder, type: VersionLinkerActionType.Unlink, - }).then(loadFolderIsLinked); + }) } + return linker.linkVersionFolder({ version, relativeFolder, type: VersionLinkerActionType.Link, - }).then(loadFolderIsLinked); + }) } const cancelLink = () => { diff --git a/src/renderer/components/shared/bsm-button.component.tsx b/src/renderer/components/shared/bsm-button.component.tsx index 957aee10..1598718d 100644 --- a/src/renderer/components/shared/bsm-button.component.tsx +++ b/src/renderer/components/shared/bsm-button.component.tsx @@ -6,7 +6,7 @@ import { useClickOutside } from "renderer/hooks/use-click-outside.hook"; import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; import { getCorrectTextColor } from "renderer/helpers/correct-text-color"; -type BsmButtonType = "primary"|"success"|"cancel"|"error"; +type BsmButtonType = "primary"|"secondary"|"success"|"cancel"|"error"; type Props = { className?: string, @@ -36,7 +36,7 @@ export function BsmButton({className, style, imgClassName, iconClassName, icon, const ref = useRef(null); useClickOutside(ref, onClickOutside); - const primaryColor = typeColor === "primary" && useThemeColor("first-color"); + const primaryColor = typeColor === "primary" ? useThemeColor("first-color") : typeColor === "secondary" ? secondColor : undefined; const textColor = (() => { if(primaryColor){ return getCorrectTextColor(primaryColor); } @@ -57,7 +57,7 @@ export function BsmButton({className, style, imgClassName, iconClassName, icon, return (
{ image && } - { icon && } + { icon && } {text && (type === "submit" ? : {t(text)})} { withBar && (
diff --git a/src/renderer/components/svgs/icons/link-icon.component.tsx b/src/renderer/components/svgs/icons/link-icon.component.tsx index db3baac5..2095e81e 100644 --- a/src/renderer/components/svgs/icons/link-icon.component.tsx +++ b/src/renderer/components/svgs/icons/link-icon.component.tsx @@ -2,7 +2,7 @@ import { CSSProperties } from "react"; export function LinkIcon(props: {className?: string, style?: CSSProperties}) { return ( - +