This commit is contained in:
Jan Prochazka
2020-12-14 20:52:49 +01:00
parent a7926a1a71
commit ed15db4c20

View File

@@ -33,15 +33,11 @@ export default function FavoriteModal({ modalState, editingData = undefined, sav
const savedProperties = ['title', 'icon', 'showInToolbar', 'openOnStartup', 'urlPath']; const savedProperties = ['title', 'icon', 'showInToolbar', 'openOnStartup', 'urlPath'];
const initialValues = React.useMemo(() => { const initialValues = React.useMemo(() => {
if (savingTab) { if (savingTab) {
const res = { return {
title: savingTab.title, title: savingTab.title,
icon: savingTab.icon, icon: savingTab.icon,
urlPath: _.kebabCase(_.deburr(savingTab.title)), urlPath: _.kebabCase(_.deburr(savingTab.title)),
}; };
if (!hasPermission('files/favorites/write')) {
res.shareAsLink = true;
}
return res;
} }
if (editingData) { if (editingData) {
return _.pick(editingData, savedProperties); return _.pick(editingData, savedProperties);
@@ -50,6 +46,8 @@ export default function FavoriteModal({ modalState, editingData = undefined, sav
const savedFile = savingTab && savingTab.props && savingTab.props.savedFile; const savedFile = savingTab && savingTab.props && savingTab.props.savedFile;
const canWriteFavorite = hasPermission('files/favorites/write');
const getTabSaveData = async (values) => { const getTabSaveData = async (values) => {
const tabdata = {}; const tabdata = {};
const skipEditor = !!savedFile && values.whatToSave != 'content'; const skipEditor = !!savedFile && values.whatToSave != 'content';
@@ -126,7 +124,7 @@ export default function FavoriteModal({ modalState, editingData = undefined, sav
return ( return (
<ModalBase modalState={modalState}> <ModalBase modalState={modalState}>
<ModalHeader modalState={modalState}>{editingData ? 'Edit favorite' : 'Add to favorites'}</ModalHeader> <ModalHeader modalState={modalState}>{editingData ? 'Edit favorite' : 'Share / add to favorites'}</ModalHeader>
<FormProvider initialValues={initialValues}> <FormProvider initialValues={initialValues}>
<ModalContent> <ModalContent>
<FormTextField label="Title" name="title" focused /> <FormTextField label="Title" name="title" focused />
@@ -135,10 +133,10 @@ export default function FavoriteModal({ modalState, editingData = undefined, sav
<FontIconPreview /> <FontIconPreview />
</FormFieldTemplate> </FormFieldTemplate>
<FormTextField label="URL path" name="urlPath" /> <FormTextField label="URL path" name="urlPath" />
{!!savingTab && !electron && hasPermission('files/favorites/write') && ( {!!savingTab && !electron && canWriteFavorite && (
<FormCheckboxField label="Share as link" name="shareAsLink" /> <FormCheckboxField label="Share as link" name="shareAsLink" />
)} )}
<FormCondition condition={(values) => !values.shareAsLink}> <FormCondition condition={(values) => !values.shareAsLink && canWriteFavorite}>
<FormCheckboxField label="Show in toolbar" name="showInToolbar" /> <FormCheckboxField label="Show in toolbar" name="showInToolbar" />
<FormCheckboxField label="Open on startup" name="openOnStartup" /> <FormCheckboxField label="Open on startup" name="openOnStartup" />
</FormCondition> </FormCondition>
@@ -150,10 +148,10 @@ export default function FavoriteModal({ modalState, editingData = undefined, sav
)} )}
</ModalContent> </ModalContent>
<ModalFooter> <ModalFooter>
<FormCondition condition={(values) => !values.shareAsLink && hasPermission('files/favorites/write')}> <FormCondition condition={(values) => !values.shareAsLink && canWriteFavorite}>
<FormSubmit value="OK" onClick={handleSubmit} /> <FormSubmit value="OK" onClick={handleSubmit} />
</FormCondition> </FormCondition>
<FormCondition condition={(values) => values.shareAsLink}> <FormCondition condition={(values) => values.shareAsLink || !canWriteFavorite}>
<FormButton value="Copy link" onClick={handleCopyLink} /> <FormButton value="Copy link" onClick={handleCopyLink} />
</FormCondition> </FormCondition>
<FormButton value="Cancel" onClick={() => modalState.close()} /> <FormButton value="Cancel" onClick={() => modalState.close()} />