diff --git a/apps/roam/src/components/RefreshImportedNodeTitleButton.tsx b/apps/roam/src/components/RefreshImportedNodeTitleButton.tsx new file mode 100644 index 000000000..1e6eec39a --- /dev/null +++ b/apps/roam/src/components/RefreshImportedNodeTitleButton.tsx @@ -0,0 +1,62 @@ +import { Button } from "@blueprintjs/core"; +import posthog from "posthog-js"; +import React, { useState } from "react"; +import renderToast from "roamjs-components/components/Toast"; +import { handleTitleAdditions } from "~/utils/handleTitleAdditions"; +import { refreshImportedNode } from "~/utils/refreshImportedNode"; + +const REFRESH_TITLE_BUTTON_ATTRIBUTE = + "data-roamjs-refresh-imported-node-title-button"; + +const RefreshImportedNodeTitleButton = ({ + uid, +}: { + uid: string; +}): JSX.Element => { + const [refreshing, setRefreshing] = useState(false); + + const refresh = async (): Promise => { + setRefreshing(true); + try { + const result = await refreshImportedNode({ pageUid: uid }); + renderToast({ + id: result.success + ? "refresh-imported-node-success" + : "refresh-imported-node-failed", + intent: result.success ? "success" : "danger", + content: result.message, + }); + } finally { + setRefreshing(false); + } + }; + + return ( +