UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 18.4 kB
{"ast":null,"code":"var _jsxFileName = \"/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/TemplateDetailScreen.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, List, Chip, Button } from 'react-native-paper';\nimport { useRoute } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport function TemplateDetailScreen() {\n const route = useRoute();\n const {\n templateId\n } = route.params;\n const template = useSelector(state => state.templates.templates.find(t => t.id === templateId));\n if (!template) {\n return _jsxDEV(View, {\n style: styles.container,\n children: _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Template Not Found\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 13\n }, this), _jsxDEV(Paragraph, {\n children: \"The requested template could not be found.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 22,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 7\n }, this);\n }\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: template.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 36,\n columnNumber: 11\n }, this), template.description && _jsxDEV(Paragraph, {\n style: styles.description,\n children: template.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 13\n }, this), _jsxDEV(View, {\n style: styles.chipContainer,\n children: [_jsxDEV(Chip, {\n mode: \"outlined\",\n compact: true,\n children: [\"Branch: \", template.branch || 'main']\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 42,\n columnNumber: 13\n }, this), template.subDirectory && _jsxDEV(Chip, {\n mode: \"outlined\",\n compact: true,\n style: styles.chip,\n children: [\"Subdir: \", template.subDirectory]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 46,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 7\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Repository Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), _jsxDEV(List.Item, {\n title: \"Repository URL\",\n description: template.url,\n left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n icon: \"github\"\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 61,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 58,\n columnNumber: 11\n }, this), _jsxDEV(List.Item, {\n title: \"Branch\",\n description: template.branch || 'main',\n left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n icon: \"source-branch\"\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 30\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), template.subDirectory && _jsxDEV(List.Item, {\n title: \"Subdirectory\",\n description: template.subDirectory,\n left: props => _jsxDEV(List.Icon, Object.assign({}, props, {\n icon: \"folder\"\n }), void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 74,\n columnNumber: 32\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 54,\n columnNumber: 7\n }, this), _jsxDEV(Card, {\n style: styles.card,\n children: _jsxDEV(Card.Content, {\n children: [_jsxDEV(Title, {\n children: \"Actions\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 11\n }, this), _jsxDEV(Button, {\n mode: \"contained\",\n style: styles.button,\n contentStyle: styles.buttonContent,\n onPress: () => {},\n children: \"Use This Template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 11\n }, this), _jsxDEV(Button, {\n mode: \"outlined\",\n style: styles.button,\n contentStyle: styles.buttonContent,\n onPress: () => {},\n children: \"Edit Template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 95,\n columnNumber: 11\n }, this), _jsxDEV(Button, {\n mode: \"outlined\",\n style: [styles.button, styles.dangerButton],\n contentStyle: styles.buttonContent,\n textColor: \"#F44336\",\n onPress: () => {},\n children: \"Delete Template\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 106,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 81,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 33,\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 description: {\n marginTop: 8,\n marginBottom: 16\n },\n chipContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n marginTop: 8\n },\n chip: {\n marginLeft: 8\n },\n button: {\n marginBottom: 12\n },\n buttonContent: {\n paddingVertical: 8\n },\n dangerButton: {\n borderColor: '#F44336'\n }\n});","map":{"version":3,"names":["React","ScrollView","StyleSheet","View","Card","Title","Paragraph","List","Chip","Button","useRoute","useSelector","jsxDEV","_jsxDEV","TemplateDetailScreen","route","templateId","params","template","state","templates","find","t","id","style","styles","container","children","card","Content","fileName","_jsxFileName","lineNumber","columnNumber","name","description","chipContainer","mode","compact","branch","subDirectory","chip","Item","title","url","left","props","Icon","Object","assign","icon","button","contentStyle","buttonContent","onPress","dangerButton","textColor","create","flex","backgroundColor","padding","marginBottom","marginTop","flexDirection","flexWrap","marginLeft","paddingVertical","borderColor"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/src/screens/TemplateDetailScreen.tsx"],"sourcesContent":["import React from 'react';\nimport { ScrollView, StyleSheet, View } from 'react-native';\nimport { Card, Title, Paragraph, List, Chip, Button } from 'react-native-paper';\nimport { RouteProp, useRoute } from '@react-navigation/native';\nimport { useSelector } from 'react-redux';\nimport { RootState } from '../store';\nimport { RootStackParamList } from '../types';\n\ntype TemplateDetailRouteProp = RouteProp<RootStackParamList, 'TemplateDetail'>;\n\nexport function TemplateDetailScreen() {\n const route = useRoute<TemplateDetailRouteProp>();\n const { templateId } = route.params;\n \n const template = useSelector((state: RootState) => \n state.templates.templates.find(t => t.id === templateId)\n );\n\n if (!template) {\n return (\n <View style={styles.container}>\n <Card style={styles.card}>\n <Card.Content>\n <Title>Template Not Found</Title>\n <Paragraph>The requested template could not be found.</Paragraph>\n </Card.Content>\n </Card>\n </View>\n );\n }\n\n return (\n <ScrollView style={styles.container}>\n <Card style={styles.card}>\n <Card.Content>\n <Title>{template.name}</Title>\n {template.description && (\n <Paragraph style={styles.description}>{template.description}</Paragraph>\n )}\n \n <View style={styles.chipContainer}>\n <Chip mode=\"outlined\" compact>\n Branch: {template.branch || 'main'}\n </Chip>\n {template.subDirectory && (\n <Chip mode=\"outlined\" compact style={styles.chip}>\n Subdir: {template.subDirectory}\n </Chip>\n )}\n </View>\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Repository Details</Title>\n \n <List.Item\n title=\"Repository URL\"\n description={template.url}\n left={(props) => <List.Icon {...props} icon=\"github\" />}\n />\n \n <List.Item\n title=\"Branch\"\n description={template.branch || 'main'}\n left={(props) => <List.Icon {...props} icon=\"source-branch\" />}\n />\n \n {template.subDirectory && (\n <List.Item\n title=\"Subdirectory\"\n description={template.subDirectory}\n left={(props) => <List.Icon {...props} icon=\"folder\" />}\n />\n )}\n </Card.Content>\n </Card>\n\n <Card style={styles.card}>\n <Card.Content>\n <Title>Actions</Title>\n \n <Button\n mode=\"contained\"\n style={styles.button}\n contentStyle={styles.buttonContent}\n onPress={() => {\n // Navigate to create project with this template pre-selected\n }}\n >\n Use This Template\n </Button>\n \n <Button\n mode=\"outlined\"\n style={styles.button}\n contentStyle={styles.buttonContent}\n onPress={() => {\n // Open edit template modal\n }}\n >\n Edit Template\n </Button>\n \n <Button\n mode=\"outlined\"\n style={[styles.button, styles.dangerButton]}\n contentStyle={styles.buttonContent}\n textColor=\"#F44336\"\n onPress={() => {\n // Show delete confirmation\n }}\n >\n Delete Template\n </Button>\n </Card.Content>\n </Card>\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 description: {\n marginTop: 8,\n marginBottom: 16,\n },\n chipContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n marginTop: 8,\n },\n chip: {\n marginLeft: 8,\n },\n button: {\n marginBottom: 12,\n },\n buttonContent: {\n paddingVertical: 8,\n },\n dangerButton: {\n borderColor: '#F44336',\n },\n});"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}