From 4e9d5b2400dcf88a30e6a87c5f2191557100b4e6 Mon Sep 17 00:00:00 2001 From: "konstantin.kireyev" Date: Mon, 9 Jun 2025 04:16:17 +0500 Subject: [PATCH] feat: mobile draw in pdf --- apps/common/mobile/lib/controller/Draw.jsx | 2 +- apps/documenteditor/mobile/locale/en.json | 3 ++- .../mobile/src/view/settings/SettingsPage.jsx | 9 ++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/common/mobile/lib/controller/Draw.jsx b/apps/common/mobile/lib/controller/Draw.jsx index 89022cb84b..fb6787a205 100644 --- a/apps/common/mobile/lib/controller/Draw.jsx +++ b/apps/common/mobile/lib/controller/Draw.jsx @@ -27,7 +27,7 @@ export const DrawController = inject('storeAppOptions')(observer(({ storeAppOpti const [enableErasing, setEnableErasing] = useState(true); const onApiFocusObject = () => { - if (storeAppOptions.isDrawMode) { + if (storeAppOptions.isDrawMode && currentTool !== 'scroll') { const api = Common.EditorApi.get(); setEnableErasing(api.asc_HaveInks()); } diff --git a/apps/documenteditor/mobile/locale/en.json b/apps/documenteditor/mobile/locale/en.json index 1f2e7b52b3..4e5ecfc416 100644 --- a/apps/documenteditor/mobile/locale/en.json +++ b/apps/documenteditor/mobile/locale/en.json @@ -808,7 +808,8 @@ "txtDownloadTxt": "Download TXT", "txtIncorrectPwd": "Password is incorrect", "txtOk": "Ok", - "txtProtected": "Once you enter the password and open the file, the current password will be reset" + "txtProtected": "Once you enter the password and open the file, the current password will be reset", + "textDrawing": "Drawing" }, "Toolbar": { "btnRestartNow": "Restart now", diff --git a/apps/documenteditor/mobile/src/view/settings/SettingsPage.jsx b/apps/documenteditor/mobile/src/view/settings/SettingsPage.jsx index 0ab2ccbe83..65c716d322 100644 --- a/apps/documenteditor/mobile/src/view/settings/SettingsPage.jsx +++ b/apps/documenteditor/mobile/src/view/settings/SettingsPage.jsx @@ -26,6 +26,7 @@ import IconHelp from '@common-icons/icon-help.svg'; import IconAbout from '@common-icons/icon-about.svg'; import IconFeedbackForIos from '@common-ios-icons/icon-feedback.svg?ios'; import IconFeedbackForAndroid from '@common-android-icons/icon-feedback.svg'; +import IconDraw from '../../../../../common/mobile/resources/icons/draw.svg' const SettingsPage = inject("storeAppOptions", "storeReview", "storeDocumentInfo")(observer(props => { const { t } = useTranslation(); @@ -58,6 +59,7 @@ const SettingsPage = inject("storeAppOptions", "storeReview", "storeDocumentInfo const isFavorite = appOptions.isFavorite; const canFillForms = appOptions.canFillForms; const isEditableForms = isForm && canFillForms; + const canDrawInPDF = !appOptions.isDisconnected && docExt === 'pdf'; const canSubmitForms = appOptions.canSubmitForms; const canCloseEditor = appOptions.canCloseEditor; const closeButtonText = canCloseEditor && appOptions.customization.close.text; @@ -130,7 +132,12 @@ const SettingsPage = inject("storeAppOptions", "storeReview", "storeDocumentInfo } - {!isEditableForms ? + {(canDrawInPDF) && ( + { settingsContext.closeModal(); Common.Notifications.trigger('draw:start');}}> + + + )} + {!isEditableForms ? { if(Device.phone) { onOpenOptions('navigation');