

import { useCallback, useMemo } from "react";
// buzzwareTech editor
import type { TMentionSection } from "@buzzwaretech/editor";
// buzzwareTech types
import type { TSearchEntities, TSearchResponse } from "@buzzwaretech/types";

export type TUseAdditionalEditorMentionArgs = {
  enableAdvancedMentions: boolean;
};

export type TAdditionalEditorMentionHandlerArgs = {
  response: TSearchResponse;
};

export type TAdditionalEditorMentionHandlerReturnType = {
  sections: TMentionSection[];
};

export type TAdditionalParseEditorContentArgs = {
  id: string;
  entityType: TSearchEntities;
};

export type TAdditionalParseEditorContentReturnType =
  | {
      redirectionPath: string;
      textContent: string;
    }
  | undefined;

export const useAdditionalEditorMention = (
  _args: TUseAdditionalEditorMentionArgs,
) => {
  const updateAdditionalSections = useCallback(
    (
      _args: TAdditionalEditorMentionHandlerArgs,
    ): TAdditionalEditorMentionHandlerReturnType => ({
      sections: [],
    }),
    [],
  );

  const parseAdditionalEditorContent = useCallback(
    (
      _args: TAdditionalParseEditorContentArgs,
    ): TAdditionalParseEditorContentReturnType => undefined,
    [],
  );

  const editorMentionTypes: TSearchEntities[] = useMemo(
    () => ["user_mention"],
    [],
  );

  return {
    updateAdditionalSections,
    parseAdditionalEditorContent,
    editorMentionTypes,
  };
};
