repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
148 lines • 30.3 kB
JSON
{
"ast": null,
"code": "var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/CreateProjectScreen.tsx\";\nimport React, { useState } from 'react';\nimport ScrollView from \"react-native-web/dist/exports/ScrollView\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport { Card, Title, TextInput, Button, Checkbox, List, Chip, IconButton, SegmentedButtons, Switch } from 'react-native-paper';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { addProject } from \"../store/projectsSlice\";\nimport { startProject } from \"../store/progressSlice\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport function CreateProjectScreen() {\n const dispatch = useDispatch();\n const availableTemplates = useSelector(state => state.templates.templates);\n const [projectName, setProjectName] = useState('');\n const [projectPath, setProjectPath] = useState('');\n const [gitRemote, setGitRemote] = useState('');\n const [selectedTemplates, setSelectedTemplates] = useState([]);\n const [mergeStrategy, setMergeStrategy] = useState('merge');\n const [initGit, setInitGit] = useState(true);\n const [excludePatterns, setExcludePatterns] = useState(['.git/**', 'node_modules/**']);\n const [newExcludePattern, setNewExcludePattern] = useState('');\n const handleTemplateToggle = templateId => {\n setSelectedTemplates(prev => prev.includes(templateId) ? prev.filter(id => id !== templateId) : [...prev, templateId]);\n };\n const handleAddExcludePattern = () => {\n if (newExcludePattern.trim() && !excludePatterns.includes(newExcludePattern.trim())) {\n setExcludePatterns([...excludePatterns, newExcludePattern.trim()]);\n setNewExcludePattern('');\n }\n };\n const handleRemoveExcludePattern = pattern => {\n setExcludePatterns(excludePatterns.filter(p => p !== pattern));\n };\n const handleCreateProject = () => {\n const selectedTemplateObjects = availableTemplates.filter(t => selectedTemplates.includes(t.id));\n const newProject = {\n id: Date.now().toString(),\n name: projectName,\n path: projectPath,\n templates: selectedTemplateObjects,\n gitRemote: gitRemote || undefined,\n excludePatterns,\n mergeStrategy,\n createdAt: new Date(),\n updatedAt: new Date()\n };\n dispatch(addProject(newProject));\n dispatch(startProject({\n id: newProject.id,\n name: projectName,\n status: 'pending',\n progress: 0,\n currentStep: 'Initializing project',\n totalSteps: selectedTemplateObjects.length + (initGit ? 1 : 0),\n errors: []\n }));\n setProjectName('');\n setProjectPath('');\n setGitRemote('');\n setSelectedTemplates([]);\n setExcludePatterns(['.git/**', 'node_modules/**']);\n };\n const isFormValid = projectName.trim() && projectPath.trim() && selectedTemplates.length > 0;\n return _jsxDEV(ScrollView, {\n style: styles.container,\n children: [_jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Project Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 98,\n columnNumber: 11\n }, this), _jsxDEV(TextInput, {\n label: \"Project Name\",\n value: projectName,\n onChangeText: setProjectName,\n style: styles.input,\n mode: \"outlined\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 11\n }, this), _jsxDEV(TextInput, {\n label: \"Project Path\",\n value: projectPath,\n onChangeText: setProjectPath,\n style: styles.input,\n mode: \"outlined\",\n placeholder: \"/path/to/your/project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 108,\n columnNumber: 11\n }, this), _jsxDEV(TextInput, {\n label: \"Git Remote (optional)\",\n value: gitRemote,\n onChangeText: setGitRemote,\n style: styles.input,\n mode: \"outlined\",\n placeholder: \"https://github.com/user/repo.git\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 11\n }, this), _jsxDEV(View, {\n style: styles.switchContainer,\n children: [_jsxDEV(Title, {\n style: styles.switchLabel,\n children: \"Initialize Git Repository\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 127,\n columnNumber: 13\n }, this), _jsxDEV(Switch, {\n value: initGit,\n onValueChange: setInitGit\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 128,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 97,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 96,\n columnNumber: 7\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Select Templates\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 11\n }, this), availableTemplates.map(template => _jsxDEV(List.Item, {\n title: template.name,\n description: template.url,\n left: () => _jsxDEV(Checkbox, {\n status: selectedTemplates.includes(template.id) ? 'checked' : 'unchecked',\n onPress: () => handleTemplateToggle(template.id)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 17\n }, this),\n onPress: () => handleTemplateToggle(template.id)\n }, template.id, false, {\n fileName: _jsxFileName,\n lineNumber: 137,\n columnNumber: 13\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 7\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Merge Strategy\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 155,\n columnNumber: 11\n }, this), _jsxDEV(SegmentedButtons, {\n value: mergeStrategy,\n onValueChange: value => setMergeStrategy(value),\n buttons: [{\n value: 'merge',\n label: 'Merge'\n }, {\n value: 'overwrite',\n label: 'Overwrite'\n }, {\n value: 'skip',\n label: 'Skip'\n }],\n style: styles.segmentedButtons\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 156,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 154,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 7\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Exclude Patterns\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 11\n }, this), _jsxDEV(View, {\n style: styles.addPatternContainer,\n children: [_jsxDEV(TextInput, {\n label: \"Add exclude pattern\",\n value: newExcludePattern,\n onChangeText: setNewExcludePattern,\n style: styles.patternInput,\n mode: \"outlined\",\n placeholder: \"*.log, temp/**, etc.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 174,\n columnNumber: 13\n }, this), _jsxDEV(IconButton, {\n icon: \"plus\",\n mode: \"contained\",\n onPress: handleAddExcludePattern,\n disabled: !newExcludePattern.trim()\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 173,\n columnNumber: 11\n }, this), _jsxDEV(View, {\n style: styles.patternsContainer,\n children: excludePatterns.map((pattern, index) => _jsxDEV(Chip, {\n mode: \"outlined\",\n onClose: () => handleRemoveExcludePattern(pattern),\n style: styles.patternChip,\n children: pattern\n }, index, false, {\n fileName: _jsxFileName,\n lineNumber: 192,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 170,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 7\n }, this), _jsxDEV(View, {\n style: styles.buttonContainer,\n children: _jsxDEV(Button, {\n mode: \"contained\",\n onPress: handleCreateProject,\n disabled: !isFormValid,\n style: styles.createButton,\n contentStyle: styles.createButtonContent,\n children: \"Create Project\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 206,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 5\n }, this);\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#f5f5f5',\n padding: 16\n },\n card: {\n marginBottom: 16\n },\n input: {\n marginBottom: 16\n },\n switchContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 8\n },\n switchLabel: {\n fontSize: 16\n },\n segmentedButtons: {\n marginTop: 8\n },\n addPatternContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n marginBottom: 16\n },\n patternInput: {\n flex: 1,\n marginRight: 8\n },\n patternsContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n patternChip: {\n marginRight: 8,\n marginBottom: 8\n },\n buttonContainer: {\n marginBottom: 32\n },\n createButton: {\n marginTop: 16\n },\n createButtonContent: {\n paddingVertical: 8\n }\n});",
"map": {
"version": 3,
"names": [
"React",
"useState",
"ScrollView",
"StyleSheet",
"View",
"Card",
"Title",
"TextInput",
"Button",
"Checkbox",
"List",
"Chip",
"IconButton",
"SegmentedButtons",
"Switch",
"useSelector",
"useDispatch",
"addProject",
"startProject",
"jsxDEV",
"_jsxDEV",
"CreateProjectScreen",
"dispatch",
"availableTemplates",
"state",
"templates",
"projectName",
"setProjectName",
"projectPath",
"setProjectPath",
"gitRemote",
"setGitRemote",
"selectedTemplates",
"setSelectedTemplates",
"mergeStrategy",
"setMergeStrategy",
"initGit",
"setInitGit",
"excludePatterns",
"setExcludePatterns",
"newExcludePattern",
"setNewExcludePattern",
"handleTemplateToggle",
"templateId",
"prev",
"includes",
"filter",
"id",
"handleAddExcludePattern",
"trim",
"handleRemoveExcludePattern",
"pattern",
"p",
"handleCreateProject",
"selectedTemplateObjects",
"t",
"newProject",
"Date",
"now",
"toString",
"name",
"path",
"undefined",
"createdAt",
"updatedAt",
"status",
"progress",
"currentStep",
"totalSteps",
"length",
"errors",
"isFormValid",
"style",
"styles",
"container",
"children",
"card",
"Content",
"fileName",
"_jsxFileName",
"lineNumber",
"columnNumber",
"label",
"value",
"onChangeText",
"input",
"mode",
"placeholder",
"switchContainer",
"switchLabel",
"onValueChange",
"map",
"template",
"Item",
"title",
"description",
"url",
"left",
"onPress",
"buttons",
"segmentedButtons",
"addPatternContainer",
"patternInput",
"icon",
"disabled",
"patternsContainer",
"index",
"onClose",
"patternChip",
"buttonContainer",
"createButton",
"contentStyle",
"createButtonContent",
"create",
"flex",
"backgroundColor",
"padding",
"marginBottom",
"flexDirection",
"justifyContent",
"alignItems",
"fontSize",
"marginTop",
"marginRight",
"flexWrap",
"paddingVertical"
],
"sources": [
"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/CreateProjectScreen.tsx"
],
"sourcesContent": [
"import React, { useState } from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\nimport {\n Card,\n Title,\n TextInput,\n Button,\n Checkbox,\n List,\n Chip,\n IconButton,\n SegmentedButtons,\n Switch,\n Divider,\n} from 'react-native-paper';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { RootState } from '../store';\nimport { addProject } from '../store/projectsSlice';\nimport { startProject } from '../store/progressSlice';\nimport { MobileRepositoryConfig, MobileTemplateRepository } from '../types';\n\nexport function CreateProjectScreen() {\n const dispatch = useDispatch();\n const availableTemplates = useSelector((state: RootState) => state.templates.templates);\n \n const [projectName, setProjectName] = useState('');\n const [projectPath, setProjectPath] = useState('');\n const [gitRemote, setGitRemote] = useState('');\n const [selectedTemplates, setSelectedTemplates] = useState<string[]>([]);\n const [mergeStrategy, setMergeStrategy] = useState<'overwrite' | 'merge' | 'skip'>('merge');\n const [initGit, setInitGit] = useState(true);\n const [excludePatterns, setExcludePatterns] = useState<string[]>(['.git/**', 'node_modules/**']);\n const [newExcludePattern, setNewExcludePattern] = useState('');\n\n const handleTemplateToggle = (templateId: string) => {\n setSelectedTemplates(prev =>\n prev.includes(templateId)\n ? prev.filter(id => id !== templateId)\n : [...prev, templateId]\n );\n };\n\n const handleAddExcludePattern = () => {\n if (newExcludePattern.trim() && !excludePatterns.includes(newExcludePattern.trim())) {\n setExcludePatterns([...excludePatterns, newExcludePattern.trim()]);\n setNewExcludePattern('');\n }\n };\n\n const handleRemoveExcludePattern = (pattern: string) => {\n setExcludePatterns(excludePatterns.filter(p => p !== pattern));\n };\n\n const handleCreateProject = () => {\n const selectedTemplateObjects = availableTemplates.filter(t => \n selectedTemplates.includes(t.id)\n );\n\n const newProject: MobileRepositoryConfig = {\n id: Date.now().toString(),\n name: projectName,\n path: projectPath,\n templates: selectedTemplateObjects,\n gitRemote: gitRemote || undefined,\n excludePatterns,\n mergeStrategy,\n createdAt: new Date(),\n updatedAt: new Date(),\n };\n\n dispatch(addProject(newProject));\n \n // Start the project creation process\n dispatch(startProject({\n id: newProject.id,\n name: projectName,\n status: 'pending',\n progress: 0,\n currentStep: 'Initializing project',\n totalSteps: selectedTemplateObjects.length + (initGit ? 1 : 0),\n errors: [],\n }));\n\n // Reset form\n setProjectName('');\n setProjectPath('');\n setGitRemote('');\n setSelectedTemplates([]);\n setExcludePatterns(['.git/**', 'node_modules/**']);\n };\n\n const isFormValid = projectName.trim() && projectPath.trim() && selectedTemplates.length > 0;\n\n return (\n <ScrollView style={styles.container}>\n <Card style={styles.card}>\n <Card.Content>\n <Title>Project Details</Title>\n \n <TextInput\n label=\"Project Name\"\n value={projectName}\n onChangeText={setProjectName}\n style={styles.input}\n mode=\"outlined\"\n />\n \n <TextInput\n label=\"Project Path\"\n value={projectPath}\n onChangeText={setProjectPath}\n style={styles.input}\n mode=\"outlined\"\n placeholder=\"/path/to/your/project\"\n />\n \n <TextInput\n label=\"Git Remote (optional)\"\n value={gitRemote}\n onChangeText={setGitRemote}\n style={styles.input}\n mode=\"outlined\"\n placeholder=\"https://github.com/user/repo.git\"\n />\n \n <View style={styles.switchContainer}>\n <Title style={styles.switchLabel}>Initialize Git Repository</Title>\n <Switch value={initGit} onValueChange={setInitGit} />\n </View>\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Select Templates</Title>\n {availableTemplates.map((template) => (\n <List.Item\n key={template.id}\n title={template.name}\n description={template.url}\n left={() => (\n <Checkbox\n status={selectedTemplates.includes(template.id) ? 'checked' : 'unchecked'}\n onPress={() => handleTemplateToggle(template.id)}\n />\n )}\n onPress={() => handleTemplateToggle(template.id)}\n />\n ))}\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Merge Strategy</Title>\n <SegmentedButtons\n value={mergeStrategy}\n onValueChange={(value) => setMergeStrategy(value as typeof mergeStrategy)}\n buttons={[\n { value: 'merge', label: 'Merge' },\n { value: 'overwrite', label: 'Overwrite' },\n { value: 'skip', label: 'Skip' },\n ]}\n style={styles.segmentedButtons}\n />\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Exclude Patterns</Title>\n \n <View style={styles.addPatternContainer}>\n <TextInput\n label=\"Add exclude pattern\"\n value={newExcludePattern}\n onChangeText={setNewExcludePattern}\n style={styles.patternInput}\n mode=\"outlined\"\n placeholder=\"*.log, temp/**, etc.\"\n />\n <IconButton\n icon=\"plus\"\n mode=\"contained\"\n onPress={handleAddExcludePattern}\n disabled={!newExcludePattern.trim()}\n />\n </View>\n \n <View style={styles.patternsContainer}>\n {excludePatterns.map((pattern, index) => (\n <Chip\n key={index}\n mode=\"outlined\"\n onClose={() => handleRemoveExcludePattern(pattern)}\n style={styles.patternChip}\n >\n {pattern}\n </Chip>\n ))}\n </View>\n </Card.Content>\n </Card>\n\n <View style={styles.buttonContainer}>\n <Button\n mode=\"contained\"\n onPress={handleCreateProject}\n disabled={!isFormValid}\n style={styles.createButton}\n contentStyle={styles.createButtonContent}\n >\n Create Project\n </Button>\n </View>\n </ScrollView>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#f5f5f5',\n padding: 16,\n },\n card: {\n marginBottom: 16,\n },\n input: {\n marginBottom: 16,\n },\n switchContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 8,\n },\n switchLabel: {\n fontSize: 16,\n },\n segmentedButtons: {\n marginTop: 8,\n },\n addPatternContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n marginBottom: 16,\n },\n patternInput: {\n flex: 1,\n marginRight: 8,\n },\n patternsContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n patternChip: {\n marginRight: 8,\n marginBottom: 8,\n },\n buttonContainer: {\n marginBottom: 32,\n },\n createButton: {\n marginTop: 16,\n },\n createButtonContent: {\n paddingVertical: 8,\n },\n});"
],
"mappings": "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",
"ignoreList": []
},
"metadata": {
"hasCjsExports": false
},
"sourceType": "module",
"externalDependencies": []
}