@@ -28,10 +57,11 @@ const AddReadPermissionToDefaultIdentity: React.FC = () => {
}}
/>
onToggle(null, false)}
- onPrimary={() => console.log('Primary action taken')}
+ onPrimary={handleAddReadPermission}
>
{ContainerCopyMessages.readPermissionAssigned.popoverDescription}
diff --git a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx
index 50de01ae2..8ae19b42a 100644
--- a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx
+++ b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx
@@ -1,14 +1,19 @@
import { Stack, Toggle } from "@fluentui/react";
import React from "react";
+import { updateDefaultIdentity } from "../../../../../Utils/arm/identityUtils";
import ContainerCopyMessages from "../../../ContainerCopyMessages";
import InfoTooltip from "../Components/InfoTooltip";
import PopoverMessage from "../Components/PopoverContainer";
+import useManagedIdentity from "./hooks/useManagedIdentity";
+import { PermissionSectionConfig } from "./hooks/usePermissionsSection";
import useToggle from "./hooks/useToggle";
const managedIdentityTooltip = ContainerCopyMessages.defaultManagedIdentity.tooltip;
+type AddManagedIdentityProps = Partial
;
-const DefaultManagedIdentity: React.FC = () => {
+const DefaultManagedIdentity: React.FC = () => {
const [defaultSystemAssigned, onToggle] = useToggle(false);
+ const { loading, handleAddSystemIdentity } = useManagedIdentity(updateDefaultIdentity);
return (
@@ -27,10 +32,11 @@ const DefaultManagedIdentity: React.FC = () => {
}}
/>
onToggle(null, false)}
- onPrimary={() => console.log('Primary action taken')}
+ onPrimary={handleAddSystemIdentity}
>
{ContainerCopyMessages.defaultManagedIdentity.popoverDescription}
diff --git a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/OnlineCopyEnabled.tsx b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/OnlineCopyEnabled.tsx
index b8d041db1..142d1ab4c 100644
--- a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/OnlineCopyEnabled.tsx
+++ b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/OnlineCopyEnabled.tsx
@@ -3,9 +3,11 @@ import React from "react";
import ContainerCopyMessages from "../../../ContainerCopyMessages";
import { useCopyJobContext } from "../../../Context/CopyJobContext";
import { buildResourceLink } from "../../../CopyJobUtils";
+import { PermissionSectionConfig } from "./hooks/usePermissionsSection";
import useWindowOpenMonitor from "./hooks/useWindowOpenMonitor";
-const OnlineCopyEnabled: React.FC = () => {
+type AddManagedIdentityProps = Partial;
+const OnlineCopyEnabled: React.FC = () => {
const { copyJobState: { source } = {} } = useCopyJobContext();
const sourceAccountLink = buildResourceLink(source?.account);
const onlineCopyUrl = `${sourceAccountLink}/Features`;
diff --git a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/PointInTimeRestore.tsx b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/PointInTimeRestore.tsx
index 3ef23d0c3..7bbba6cfc 100644
--- a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/PointInTimeRestore.tsx
+++ b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/PointInTimeRestore.tsx
@@ -1,18 +1,44 @@
import { PrimaryButton, Stack } from "@fluentui/react";
-import React from "react";
+import React, { useCallback, useState } from "react";
+import { fetchDatabaseAccount } from "Utils/arm/databaseAccountUtils";
import ContainerCopyMessages from "../../../ContainerCopyMessages";
import { useCopyJobContext } from "../../../Context/CopyJobContext";
import { buildResourceLink } from "../../../CopyJobUtils";
+import { PermissionSectionConfig } from "./hooks/usePermissionsSection";
import useWindowOpenMonitor from "./hooks/useWindowOpenMonitor";
-const PointInTimeRestore: React.FC = () => {
- const { copyJobState: { source } = {} } = useCopyJobContext();
+type AddManagedIdentityProps = Partial;
+const PointInTimeRestore: React.FC = () => {
+ const [loading, setLoading] = useState(false);
+ const { copyJobState: { source } = {}, setCopyJobState } = useCopyJobContext();
const sourceAccountLink = buildResourceLink(source?.account);
const pitrUrl = `${sourceAccountLink}/backupRestore`;
- const onWindowClosed = () => {
- console.log('Point-in-time restore window closed');
- };
+ const onWindowClosed = useCallback(async () => {
+ try {
+ setLoading(true);
+ const account = await fetchDatabaseAccount(
+ source?.subscription?.subscriptionId,
+ source?.account?.resourceGroup,
+ source?.account?.name
+ );
+ /* account.properties = {
+ backupPolicy: {
+ type: "Continuous"
+ }
+ } */
+ if (account) {
+ setCopyJobState((prevState) => ({
+ ...prevState,
+ source: { ...prevState.source, account: account }
+ }));
+ }
+ } catch (error) {
+ console.error("Error fetching database account after PITR window closed:", error);
+ } finally {
+ setLoading(false);
+ }
+ }, [])
const openWindowAndMonitor = useWindowOpenMonitor(pitrUrl, onWindowClosed);
return (
@@ -21,7 +47,9 @@ const PointInTimeRestore: React.FC = () => {
{ContainerCopyMessages.pointInTimeRestore.description}