mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
- Remove nested git repository from bugulma/frontend/.git - Add all frontend files to main repository tracking - Convert from separate frontend/backend repos to unified monorepo - Preserve all frontend code and development history as tracked files - Eliminate nested repository complexity for simpler development workflow This creates a proper monorepo structure with frontend and backend coexisting in the same repository for easier development and deployment.
70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
/**
|
|
* Organization AI data extraction hook
|
|
* Handles AI-powered data extraction and generation for organizations
|
|
* Separated from form logic for better SRP
|
|
*/
|
|
|
|
import { useCallback } from 'react';
|
|
import {
|
|
useExtractDataFromFile,
|
|
useExtractDataFromText,
|
|
useGenerateOrganizationDescription,
|
|
} from '@/hooks/useGemini.ts';
|
|
import { useTranslation } from '@/hooks/useI18n.tsx';
|
|
|
|
interface UseOrganizationAIProps {
|
|
formData: {
|
|
description: string;
|
|
name: string;
|
|
sector: string;
|
|
tags: string[];
|
|
};
|
|
}
|
|
|
|
export const useOrganizationAI = ({ formData }: UseOrganizationAIProps) => {
|
|
const { t } = useTranslation();
|
|
|
|
const { refetch: extractFromText, isPending: isExtractingFromText } = useExtractDataFromText(
|
|
formData.description,
|
|
t
|
|
);
|
|
|
|
const { refetch: extractFromFile, isPending: isExtractingFromFile } = useExtractDataFromFile(
|
|
new File([], ''),
|
|
t
|
|
);
|
|
|
|
const { refetch: generateDescription, isPending: isGeneratingDescription } =
|
|
useGenerateOrganizationDescription(formData.name, formData.sector, formData.tags.join(', '), t);
|
|
|
|
const extractDataFromText = useCallback(async () => {
|
|
const result = await extractFromText();
|
|
return result.data;
|
|
}, [extractFromText]);
|
|
|
|
const extractDataFromFile = useCallback(async () => {
|
|
// Note: This would need to be updated to accept file parameter
|
|
// For now, returning placeholder
|
|
const result = await extractFromFile();
|
|
return result.data;
|
|
}, [extractFromFile]);
|
|
|
|
const generateOrganizationDescription = useCallback(async () => {
|
|
const result = await generateDescription();
|
|
return result.data;
|
|
}, [generateDescription]);
|
|
|
|
const isAnyAIOperationPending =
|
|
isExtractingFromText || isExtractingFromFile || isGeneratingDescription;
|
|
|
|
return {
|
|
extractDataFromText,
|
|
extractDataFromFile,
|
|
generateOrganizationDescription,
|
|
isExtractingFromText,
|
|
isExtractingFromFile,
|
|
isGeneratingDescription,
|
|
isAnyAIOperationPending,
|
|
};
|
|
};
|