repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 17.6 kB
JSON
{"ast":null,"code":"var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/HomeScreen.tsx\";\nimport React 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, Paragraph, FAB, List, Chip } from 'react-native-paper';\nimport { useSelector } from 'react-redux';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport function HomeScreen() {\n const projects = useSelector(state => state.projects.projects);\n const activeProjects = useSelector(state => state.progress.activeProjects);\n return _jsxDEV(View, {\n style: styles.container,\n children: [_jsxDEV(ScrollView, {\n style: styles.scrollView,\n children: [activeProjects.length > 0 && _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Active Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 15\n }, this), activeProjects.map(project => _jsxDEV(List.Item, {\n title: project.name,\n description: `${project.currentStep} (${project.progress}%)`,\n left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n icon: \"progress-clock\"\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 36\n }, this),\n right: () => _jsxDEV(Chip, {\n mode: \"outlined\",\n compact: true,\n children: project.status\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 21\n }, this)\n }, project.id, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 17\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 11\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Recent Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 37,\n columnNumber: 13\n }, this), projects.length === 0 ? _jsxDEV(Paragraph, {\n children: \"No projects yet. Create your first project!\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 15\n }, this) : projects.slice(0, 5).map(project => _jsxDEV(List.Item, {\n title: project.name,\n description: `${project.templates.length} templates • ${project.path}`,\n left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n icon: \"folder\"\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 36\n }, this),\n right: () => _jsxDEV(Chip, {\n mode: \"outlined\",\n compact: true,\n children: project.mergeStrategy\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 21\n }, this)\n }, project.id, false, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 17\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Quick Stats\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 13\n }, this), _jsxDEV(View, {\n style: styles.statsRow,\n children: [_jsxDEV(View, {\n style: styles.statItem,\n children: [_jsxDEV(Title, {\n children: projects.length\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 17\n }, this), _jsxDEV(Paragraph, {\n children: \"Projects\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 15\n }, this), _jsxDEV(View, {\n style: styles.statItem,\n children: [_jsxDEV(Title, {\n children: projects.reduce((sum, p) => sum + p.templates.length, 0)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 17\n }, this), _jsxDEV(Paragraph, {\n children: \"Templates Used\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 15\n }, this), _jsxDEV(View, {\n style: styles.statItem,\n children: [_jsxDEV(Title, {\n children: activeProjects.length\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 17\n }, this), _jsxDEV(Paragraph, {\n children: \"Active\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 72,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 59,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 7\n }, this), _jsxDEV(FAB, {\n style: styles.fab,\n icon: \"plus\",\n onPress: () => {}\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 5\n }, this);\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#f5f5f5'\n },\n scrollView: {\n flex: 1,\n padding: 16\n },\n card: {\n marginBottom: 16\n },\n fab: {\n position: 'absolute',\n margin: 16,\n right: 0,\n bottom: 0\n },\n statsRow: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n marginTop: 16\n },\n statItem: {\n alignItems: 'center'\n }\n});","map":{"version":3,"names":["React","ScrollView","StyleSheet","View","Card","Title","Paragraph","FAB","List","Chip","useSelector","jsxDEV","_jsxDEV","HomeScreen","projects","state","activeProjects","progress","style","styles","container","children","scrollView","length","card","Content","fileName","_jsxFileName","lineNumber","columnNumber","map","project","Item","title","name","description","currentStep","left","props","Icon","Object","assign","icon","right","mode","compact","status","id","slice","templates","path","mergeStrategy","statsRow","statItem","reduce","sum","p","fab","onPress","create","flex","backgroundColor","padding","marginBottom","position","margin","bottom","flexDirection","justifyContent","marginTop","alignItems"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/HomeScreen.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\nimport { Card, Title, Paragraph, FAB, List, Chip } from 'react-native-paper';\nimport { useSelector } from 'react-redux';\nimport { RootState } from '../store';\n\nexport function HomeScreen() {\n const projects = useSelector((state: RootState) => state.projects.projects);\n const activeProjects = useSelector((state: RootState) => state.progress.activeProjects);\n\n return (\n <View style={styles.container}>\n <ScrollView style={styles.scrollView}>\n {activeProjects.length > 0 && (\n <Card style={styles.card}>\n <Card.Content>\n <Title>Active Projects</Title>\n {activeProjects.map((project) => (\n <List.Item\n key={project.id}\n title={project.name}\n description={`${project.currentStep} (${project.progress}%)`}\n left={(props) => <List.Icon {...props} icon=\"progress-clock\" />}\n right={() => (\n <Chip mode=\"outlined\" compact>\n {project.status}\n </Chip>\n )}\n />\n ))}\n </Card.Content>\n </Card>\n )}\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Recent Projects</Title>\n {projects.length === 0 ? (\n <Paragraph>No projects yet. Create your first project!</Paragraph>\n ) : (\n projects.slice(0, 5).map((project) => (\n <List.Item\n key={project.id}\n title={project.name}\n description={`${project.templates.length} templates • ${project.path}`}\n left={(props) => <List.Icon {...props} icon=\"folder\" />}\n right={() => (\n <Chip mode=\"outlined\" compact>\n {project.mergeStrategy}\n </Chip>\n )}\n />\n ))\n )}\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Quick Stats</Title>\n <View style={styles.statsRow}>\n <View style={styles.statItem}>\n <Title>{projects.length}</Title>\n <Paragraph>Projects</Paragraph>\n </View>\n <View style={styles.statItem}>\n <Title>{projects.reduce((sum, p) => sum + p.templates.length, 0)}</Title>\n <Paragraph>Templates Used</Paragraph>\n </View>\n <View style={styles.statItem}>\n <Title>{activeProjects.length}</Title>\n <Paragraph>Active</Paragraph>\n </View>\n </View>\n </Card.Content>\n </Card>\n </ScrollView>\n\n <FAB\n style={styles.fab}\n icon=\"plus\"\n onPress={() => {\n // Navigate to create project screen\n }}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#f5f5f5',\n },\n scrollView: {\n flex: 1,\n padding: 16,\n },\n card: {\n marginBottom: 16,\n },\n fab: {\n position: 'absolute',\n margin: 16,\n right: 0,\n bottom: 0,\n },\n statsRow: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n marginTop: 16,\n },\n statItem: {\n alignItems: 'center',\n },\n});"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}