CoolFace
Apppublic

admin08077/Githubgemini

sourceHugging Faceotherupdated 10mo agoView on Hugging Face
0likes
WeeklyDigestGenerator-BOGgS09W.js.map1 linesDownload Raw Back to assets
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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"}