{
- const fetchIssues = async (searchQuery: string): Promise
=> {
- const response = await pageService.searchEmbed(workspaceSlug, projectId, {
- query_type: queryType,
- query: searchQuery,
- count: 10,
- });
- const structuredIssues: TEmbedItem[] = (response ?? []).map((issue) => ({
- id: issue.id,
- subTitle: `${issue.project__identifier}-${issue.sequence_id}`,
- title: issue.name,
- icon: ,
- projectId: projectId,
- workspaceSlug: workspaceSlug,
- }));
- return structuredIssues;
- };
-
- return {
- fetchIssues,
- };
-};
diff --git a/web/ee/components/pages/editor/embed/index.ts b/web/ee/components/pages/editor/embed/index.ts
index f30596cb00..63c4292bfe 100644
--- a/web/ee/components/pages/editor/embed/index.ts
+++ b/web/ee/components/pages/editor/embed/index.ts
@@ -1 +1,2 @@
export * from "./issue-embed";
+export * from "./issue-embed-upgrade-card";
diff --git a/web/ee/components/pages/editor/embed/issue-embed-upgrade-card.ts b/web/ee/components/pages/editor/embed/issue-embed-upgrade-card.ts
new file mode 100644
index 0000000000..02bff5a0ab
--- /dev/null
+++ b/web/ee/components/pages/editor/embed/issue-embed-upgrade-card.ts
@@ -0,0 +1 @@
+export * from "ce/components/pages/editor/embed/issue-embed-upgrade-card";
diff --git a/web/ee/hooks/use-bulk-operation-status.ts b/web/ee/hooks/use-bulk-operation-status.ts
new file mode 100644
index 0000000000..7b7d57fb18
--- /dev/null
+++ b/web/ee/hooks/use-bulk-operation-status.ts
@@ -0,0 +1 @@
+export const useBulkOperationStatus = () => true;
diff --git a/web/ee/hooks/use-issue-embed.tsx b/web/ee/hooks/use-issue-embed.tsx
index 96e436e70d..9e33149d94 100644
--- a/web/ee/hooks/use-issue-embed.tsx
+++ b/web/ee/hooks/use-issue-embed.tsx
@@ -1 +1,68 @@
-export * from "ce/hooks/use-issue-embed";
+// editor
+import { TEmbedConfig, TEmbedItem, TIssueEmbedConfig, TReadOnlyEmbedConfig } from "@plane/editor";
+// types
+import { TPageEmbedResponse, TPageEmbedType } from "@plane/types";
+// ui
+import { PriorityIcon } from "@plane/ui";
+// plane web components
+import { IssueEmbedCard } from "@/plane-web/components/pages";
+// services
+import { ProjectPageService } from "@/services/page";
+
+const pageService = new ProjectPageService();
+
+export const useIssueEmbed = (workspaceSlug: string, projectId: string, queryType: TPageEmbedType = "issue") => {
+ const fetchIssues = async (searchQuery: string): Promise => {
+ const response = await pageService.searchEmbed(workspaceSlug, projectId, {
+ query_type: queryType,
+ query: searchQuery,
+ count: 10,
+ });
+ const structuredIssues: TEmbedItem[] = (response ?? []).map((issue) => ({
+ id: issue.id,
+ subTitle: `${issue.project__identifier}-${issue.sequence_id}`,
+ title: issue.name,
+ icon: ,
+ projectId: projectId,
+ workspaceSlug: workspaceSlug,
+ }));
+ return structuredIssues;
+ };
+
+ const searchCallback: TIssueEmbedConfig["searchCallback"] = async (query: string): Promise =>
+ new Promise((resolve) => {
+ setTimeout(async () => {
+ const response = await fetchIssues(query);
+ const issueItemsWithIdentifiers = response?.map((issue) => ({
+ ...issue,
+ projectId: projectId.toString(),
+ workspaceSlug: workspaceSlug.toString(),
+ }));
+ resolve(issueItemsWithIdentifiers);
+ }, 300);
+ });
+
+ const widgetCallback: TIssueEmbedConfig["widgetCallback"] = ({
+ issueId,
+ projectId: projectIdFromEmbed,
+ workspaceSlug: workspaceSlugFromEmbed,
+ }) => {
+ const resolvedProjectId = projectIdFromEmbed ?? projectId?.toString() ?? "";
+ const resolvedWorkspaceSlug = workspaceSlugFromEmbed ?? workspaceSlug?.toString() ?? "";
+ return ;
+ };
+
+ const issueEmbedProps: TEmbedConfig["issue"] = {
+ searchCallback,
+ widgetCallback,
+ };
+
+ const issueEmbedReadOnlyProps: TReadOnlyEmbedConfig["issue"] = {
+ widgetCallback,
+ };
+
+ return {
+ issueEmbedProps,
+ issueEmbedReadOnlyProps,
+ };
+};