admin08077/Githubgemini
0
1{"version":3,"file":"WeeklyDigestGenerator-BOGgS09W.js","sources":["../../components/features/WeeklyDigestGenerator.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport { generateWeeklyDigest } from '../../services/index.ts';\nimport { getCommitHistory } from '../../services/githubService.ts';\nimport { useNotification } from '../../contexts/NotificationContext.tsx';\nimport { useGlobalState } from '../../contexts/GlobalStateContext.tsx';\nimport { useOctokit } from '../../contexts/OctokitContext.tsx';\nimport { MailIcon, SparklesIcon } from '../icons.tsx';\nimport { LoadingSpinner } from '../shared/index.tsx';\n\nconst dummyTelemetry = {\n avgPageLoad: 120,\n errorRate: '0.5%',\n uptime: '99.98%'\n};\n\nexport const WeeklyDigestGenerator: React.FC = () => {\n const { addNotification } = useNotification();\n const { state } = useGlobalState();\n const { selectedRepo } = state;\n const { octokit, reinitialize } = useOctokit();\n\n const [emailHtml, setEmailHtml] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n \n // Re-check for Octokit client if it's not available initially\n useEffect(() => {\n if (!octokit) {\n reinitialize();\n }\n }, [octokit, reinitialize]);\n\n const handleGenerate = useCallback(async () => {\n if (!selectedRepo || !octokit) {\n addNotification('Please select a repository and ensure GitHub is connected.', 'error');\n return;\n }\n\n setIsLoading(true);\n setEmailHtml('');\n try {\n const [owner, repo] = selectedRepo.full_name.split('/');\n const commits = await getCommitHistory(octokit, owner, repo);\n const commitLogs = commits.map(c => c.commit.message).join('\\n');\n \n const html = await generateWeeklyDigest(commitLogs, dummyTelemetry);\n setEmailHtml(html);\n addNotification('Digest content generated!', 'success');\n } catch (e) {\n addNotification(e instanceof Error ? e.message : 'Failed to generate digest', 'error');\n } finally {\n setIsLoading(false);\n }\n }, [addNotification, octokit, selectedRepo]);\n\n\n return (\n <div className=\"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary\">\n <header className=\"mb-6\">\n <h1 className=\"text-3xl font-bold flex items-center\"><MailIcon /><span className=\"ml-3\">Weekly Digest Generator</span></h1>\n <p className=\"text-text-secondary mt-1\">Generate an AI-powered weekly summary based on project data.</p>\n </header>\n\n <div className=\"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 min-h-0\">\n <div className=\"bg-surface p-4 border border-border rounded-lg flex flex-col items-center justify-center text-center\">\n <h3 className=\"text-lg font-bold\">Generate Digest</h3>\n <p className=\"text-sm text-text-secondary my-4\">\n This tool will use the commit history from your selected repository ({selectedRepo ? selectedRepo.full_name : 'none selected'}) to generate a summary. The send functionality has been removed due to updated permissions.\n </p>\n <div className=\"flex flex-col gap-4 w-full max-w-xs\">\n <button onClick={handleGenerate} disabled={isLoading || !selectedRepo || !octokit} className=\"btn-primary flex items-center justify-center gap-2 py-3\">\n {isLoading ? <LoadingSpinner /> : <><SparklesIcon /> Generate Digest</>}\n </button>\n </div>\n </div>\n\n <div className=\"bg-surface p-4 border border-border rounded-lg flex flex-col\">\n <h3 className=\"text-lg font-bold mb-2\">Email Preview</h3>\n <div className=\"flex-grow bg-white border rounded overflow-hidden\">\n {isLoading && <div className=\"flex justify-center items-center h-full\"><LoadingSpinner /></div>}\n {emailHtml && <iframe srcDoc={emailHtml} title=\"Email Preview\" className=\"w-full h-full\" />}\n {!isLoading && !emailHtml && <div className=\"flex justify-center items-center h-full text-text-secondary\">Preview will appear here.</div>}\n </div>\n </div>\n </div>\n </div>\n );\n};"],"names":["dummyTelemetry","WeeklyDigestGenerator","addNotification","useNotification","state","useGlobalState","selectedRepo","octokit","reinitialize","useOctokit","emailHtml","setEmailHtml","useState","isLoading","setIsLoading","useEffect","handleGenerate","useCallback","owner","repo","commitLogs","getCommitHistory","c","html","generateWeeklyDigest","e","jsxs","jsx","MailIcon","LoadingSpinner","Fragment","SparklesIcon"],"mappings":"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"}