From b54dccc49b2220802a0dbae48cfe13cc2076d17f Mon Sep 17 00:00:00 2001 From: Heiko Joerg Schick Date: Sun, 9 Mar 2025 14:54:51 +0100 Subject: [PATCH] Added wrapper functions for draft, progress bar and change icon for remove confidential. --- src/taskpane/components/AddDraft.tsx | 54 +++++++++++++++++++ src/taskpane/components/AddProgressBar.tsx | 54 +++++++++++++++++++ src/taskpane/components/App.tsx | 13 ++++- .../components/RemoveConfidential.tsx | 4 +- src/taskpane/components/RemoveDraft.tsx | 54 +++++++++++++++++++ src/taskpane/components/RemoveProgressBar.tsx | 54 +++++++++++++++++++ 6 files changed, 230 insertions(+), 3 deletions(-) create mode 100644 src/taskpane/components/AddDraft.tsx create mode 100644 src/taskpane/components/AddProgressBar.tsx create mode 100644 src/taskpane/components/RemoveDraft.tsx create mode 100644 src/taskpane/components/RemoveProgressBar.tsx diff --git a/src/taskpane/components/AddDraft.tsx b/src/taskpane/components/AddDraft.tsx new file mode 100644 index 00000000..71a2aba0 --- /dev/null +++ b/src/taskpane/components/AddDraft.tsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import { + Button +} from "@fluentui/react-components"; +import { + Edit24Regular +} from "@fluentui/react-icons"; +import { useStatusContext } from "./App"; +import { useCommonStyles } from "./commonStyles"; + +export const AddDraft: React.FC = () => { + const styles = useCommonStyles(); + const { + statusMessage, setStatusMessage, + statusType, setStatusType, + isProcessing, setIsProcessing + } = useStatusContext(); + + const addDraftWatermark = async () => { + setIsProcessing(true); + try { + await PowerPoint.run(async (context) => { + const shapes = context.presentation.getSelectedShapes(); + // Implementation will go here + setStatusMessage("Added draft watermark to slides."); + setStatusType("success"); + }); + } catch (error) { + setStatusMessage(`Error: ${error.message}`); + setStatusType("error"); + console.error("Add draft watermark error:", error); + } finally { + setIsProcessing(false); + } + }; + + return ( +
+
+ +
+
+ ); +}; + +export default AddDraft; \ No newline at end of file diff --git a/src/taskpane/components/AddProgressBar.tsx b/src/taskpane/components/AddProgressBar.tsx new file mode 100644 index 00000000..f82bece8 --- /dev/null +++ b/src/taskpane/components/AddProgressBar.tsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import { + Button +} from "@fluentui/react-components"; +import { + GaugeRegular +} from "@fluentui/react-icons"; +import { useStatusContext } from "./App"; +import { useCommonStyles } from "./commonStyles"; + +export const AddProgressBar: React.FC = () => { + const styles = useCommonStyles(); + const { + statusMessage, setStatusMessage, + statusType, setStatusType, + isProcessing, setIsProcessing + } = useStatusContext(); + + const addProgressBar = async () => { + setIsProcessing(true); + try { + await PowerPoint.run(async (context) => { + const shapes = context.presentation.getSelectedShapes(); + // Implementation will go here + setStatusMessage("Added progress bar to slides."); + setStatusType("success"); + }); + } catch (error) { + setStatusMessage(`Error: ${error.message}`); + setStatusType("error"); + console.error("Add progress bar error:", error); + } finally { + setIsProcessing(false); + } + }; + + return ( +
+
+ +
+
+ ); +}; + +export default AddProgressBar; \ No newline at end of file diff --git a/src/taskpane/components/App.tsx b/src/taskpane/components/App.tsx index 8066ff9b..93672f95 100644 --- a/src/taskpane/components/App.tsx +++ b/src/taskpane/components/App.tsx @@ -7,6 +7,10 @@ import SwapPositions from "./SwapPositions"; import InsertTitles from "./InsertTitles"; import AddConfidential from "./AddConfidential"; import RemoveConfidential from "./RemoveConfidential"; +import AddDraft from "./AddDraft"; +import RemoveDraft from "./RemoveDraft"; +import AddProgressBar from "./AddProgressBar"; +import RemoveProgressBar from "./RemoveProgressBar"; import { makeStyles, Text, Subtitle1, tokens, Theme, Spinner } from "@fluentui/react-components"; import { ShapeUnionRegular, SquareRegular, InfoRegular } from "@fluentui/react-icons"; @@ -168,15 +172,22 @@ const App: React.FC = () => { Progress Bar + +
+
- Confidential + Watermarks
+
+ +
+
diff --git a/src/taskpane/components/RemoveConfidential.tsx b/src/taskpane/components/RemoveConfidential.tsx index 9794d611..1a2b8f01 100644 --- a/src/taskpane/components/RemoveConfidential.tsx +++ b/src/taskpane/components/RemoveConfidential.tsx @@ -3,7 +3,7 @@ import { Button } from "@fluentui/react-components"; import { - ShieldDismissRegular + DismissRegular } from "@fluentui/react-icons"; import { useStatusContext } from "./App"; import { useCommonStyles } from "./commonStyles"; @@ -102,7 +102,7 @@ export const RemoveConfidential: React.FC = () => { appearance="primary" className={styles.actionButton} onClick={removeConfidentialMarking} - icon={} + icon={} disabled={isProcessing} > Remove Confidential diff --git a/src/taskpane/components/RemoveDraft.tsx b/src/taskpane/components/RemoveDraft.tsx new file mode 100644 index 00000000..590309b2 --- /dev/null +++ b/src/taskpane/components/RemoveDraft.tsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import { + Button +} from "@fluentui/react-components"; +import { + DismissRegular +} from "@fluentui/react-icons"; +import { useStatusContext } from "./App"; +import { useCommonStyles } from "./commonStyles"; + +export const RemoveDraft: React.FC = () => { + const styles = useCommonStyles(); + const { + statusMessage, setStatusMessage, + statusType, setStatusType, + isProcessing, setIsProcessing + } = useStatusContext(); + + const removeDraftWatermark = async () => { + setIsProcessing(true); + try { + await PowerPoint.run(async (context) => { + const shapes = context.presentation.getSelectedShapes(); + // Implementation will go here + setStatusMessage("Removed draft watermarks from slides."); + setStatusType("success"); + }); + } catch (error) { + setStatusMessage(`Error: ${error.message}`); + setStatusType("error"); + console.error("Remove draft watermark error:", error); + } finally { + setIsProcessing(false); + } + }; + + return ( +
+
+ +
+
+ ); +}; + +export default RemoveDraft; \ No newline at end of file diff --git a/src/taskpane/components/RemoveProgressBar.tsx b/src/taskpane/components/RemoveProgressBar.tsx new file mode 100644 index 00000000..f65cb99f --- /dev/null +++ b/src/taskpane/components/RemoveProgressBar.tsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import { + Button +} from "@fluentui/react-components"; +import { + DismissRegular +} from "@fluentui/react-icons"; +import { useStatusContext } from "./App"; +import { useCommonStyles } from "./commonStyles"; + +export const RemoveProgressBar: React.FC = () => { + const styles = useCommonStyles(); + const { + statusMessage, setStatusMessage, + statusType, setStatusType, + isProcessing, setIsProcessing + } = useStatusContext(); + + const removeProgressBar = async () => { + setIsProcessing(true); + try { + await PowerPoint.run(async (context) => { + const shapes = context.presentation.getSelectedShapes(); + // Implementation will go here + setStatusMessage("Removed progress bars from slides."); + setStatusType("success"); + }); + } catch (error) { + setStatusMessage(`Error: ${error.message}`); + setStatusType("error"); + console.error("Remove progress bar error:", error); + } finally { + setIsProcessing(false); + } + }; + + return ( +
+
+ +
+
+ ); +}; + +export default RemoveProgressBar; \ No newline at end of file