diff --git a/public/locales/en-US/application.json b/public/locales/en-US/application.json
index 695b370..801cb51 100644
--- a/public/locales/en-US/application.json
+++ b/public/locales/en-US/application.json
@@ -469,6 +469,8 @@
"createShareLink": "Create share link",
"privateShare": "Hide from public",
"privateShareDes": "If selected, other people cannot see this share link on your homepage.",
+ "passwordPrefix": "Share link password: ",
+ "passwordAutoGenerate": "Auto generate",
"shareView": "Share view setting",
"shareViewDes": "If selected, other users can see your view setting (layout, sorting, etc.) saved on the server server when accessing this shared folder.",
"expireAfterDownload": "Expire after being downloaded",
diff --git a/public/locales/ja-JP/application.json b/public/locales/ja-JP/application.json
index d71e4b7..f598580 100644
--- a/public/locales/ja-JP/application.json
+++ b/public/locales/ja-JP/application.json
@@ -470,6 +470,8 @@
"createShareLink": "共有リンク作成",
"privateShare": "共有を非表示",
"privateShareDes": "チェックを入れると他の人はあなたのプロフィールページでこの共有リンクを見ることができません。",
+ "passwordPrefix": "共有リンクパスワード:",
+ "passwordAutoGenerate": "自動生成",
"expireAfterDownload": "ダウンロード後に自動的に期限切れ",
"sharePassword": "共有パスワード",
"randomlyGenerate": "ランダム生成",
diff --git a/public/locales/zh-CN/application.json b/public/locales/zh-CN/application.json
index 02f379a..74a1534 100644
--- a/public/locales/zh-CN/application.json
+++ b/public/locales/zh-CN/application.json
@@ -469,6 +469,8 @@
"createShareLink": "创建分享链接",
"privateShare": "隐藏分享",
"privateShareDes": "勾选后,其他人无法在你的个人主页看到此分享链接。",
+ "passwordPrefix": "分享密码: ",
+ "passwordAutoGenerate": "自动生成",
"expireAfterDownload": "下载后自动过期",
"sharePassword": "分享密码",
"randomlyGenerate": "随机生成",
diff --git a/public/locales/zh-TW/application.json b/public/locales/zh-TW/application.json
index 93631d1..92d4824 100644
--- a/public/locales/zh-TW/application.json
+++ b/public/locales/zh-TW/application.json
@@ -465,6 +465,8 @@
"createShareLink": "建立分享連結",
"privateShare": "隱藏分享",
"privateShareDes": "勾選後,其他人無法在你的個人主頁看到此分享連結。",
+ "passwordPrefix": "分享密碼:",
+ "passwordAutoGenerate": "自動生成",
"expireAfterDownload": "下載後自動過期",
"sharePassword": "分享密碼",
"randomlyGenerate": "隨機生成",
diff --git a/src/api/explorer.ts b/src/api/explorer.ts
index ef6952a..7225470 100644
--- a/src/api/explorer.ts
+++ b/src/api/explorer.ts
@@ -275,6 +275,7 @@ export interface ShareCreateService {
uri: string;
downloads?: number;
is_private?: boolean;
+ password?: string;
expire?: number;
share_view?: boolean;
}
diff --git a/src/component/FileManager/Dialogs/Share/ShareSetting.tsx b/src/component/FileManager/Dialogs/Share/ShareSetting.tsx
index b95973a..5d84e99 100644
--- a/src/component/FileManager/Dialogs/Share/ShareSetting.tsx
+++ b/src/component/FileManager/Dialogs/Share/ShareSetting.tsx
@@ -1,5 +1,6 @@
import {
Autocomplete,
+ Box,
Checkbox,
createFilterOptions,
FormControl,
@@ -70,6 +71,7 @@ const StyledListItemButton = styled(ListItemButton)(() => ({}));
export interface ShareSetting {
is_private?: boolean;
+ password?: string;
share_view?: boolean;
downloads?: boolean;
expires?: boolean;
@@ -150,7 +152,28 @@ const ShareSettingContent = ({ setting, file, editing, onSettingChange }: ShareS
- {t("application:modals.privateShareDes")}
+
+ {t("application:modals.privateShareDes")}
+ {setting.is_private && (
+
+ {t("application:modals.passwordPrefix")}
+
+ {
+ onSettingChange({ ...setting, password: e.target.value });
+ }}
+ placeholder={t("application:modals.passwordAutoGenerate")}
+ fullWidth
+ />
+
+
+ )}
+
{file?.type == FileType.folder && (
diff --git a/src/redux/thunks/share.ts b/src/redux/thunks/share.ts
index 003d0d2..3ed0b38 100644
--- a/src/redux/thunks/share.ts
+++ b/src/redux/thunks/share.ts
@@ -20,6 +20,7 @@ export function createOrUpdateShareLink(
const req: ShareCreateService = {
uri: file.path,
is_private: setting.is_private,
+ password: setting.password,
share_view: setting.share_view,
downloads: setting.downloads && setting.downloads_val.value > 0 ? setting.downloads_val.value : undefined,
expire: setting.expires && setting.expires_val.value > 0 ? setting.expires_val.value : undefined,