{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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 { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function HomeScreen() {\n  var projects = useSelector(function (state) {\n    return state.projects.projects;\n  });\n  var activeProjects = useSelector(function (state) {\n    return state.progress.activeProjects;\n  });\n  return _jsxs(View, {\n    style: styles.container,\n    children: [_jsxs(ScrollView, {\n      style: styles.scrollView,\n      children: [activeProjects.length > 0 && _jsx(Card, {\n        style: styles.card,\n        children: _jsxs(Card.Content, {\n          children: [_jsx(Title, {\n            children: \"Active Projects\"\n          }), activeProjects.map(function (project) {\n            return _jsx(List.Item, {\n              title: project.name,\n              description: `${project.currentStep} (${project.progress}%)`,\n              left: function left(props) {\n                return _jsx(List.Icon, _objectSpread(_objectSpread({}, props), {}, {\n                  icon: \"progress-clock\"\n                }));\n              },\n              right: function right() {\n                return _jsx(Chip, {\n                  mode: \"outlined\",\n                  compact: true,\n                  children: project.status\n                });\n              }\n            }, project.id);\n          })]\n        })\n      }), _jsx(Card, {\n        style: styles.card,\n        children: _jsxs(Card.Content, {\n          children: [_jsx(Title, {\n            children: \"Recent Projects\"\n          }), projects.length === 0 ? _jsx(Paragraph, {\n            children: \"No projects yet. Create your first project!\"\n          }) : projects.slice(0, 5).map(function (project) {\n            return _jsx(List.Item, {\n              title: project.name,\n              description: `${project.templates.length} templates • ${project.path}`,\n              left: function left(props) {\n                return _jsx(List.Icon, _objectSpread(_objectSpread({}, props), {}, {\n                  icon: \"folder\"\n                }));\n              },\n              right: function right() {\n                return _jsx(Chip, {\n                  mode: \"outlined\",\n                  compact: true,\n                  children: project.mergeStrategy\n                });\n              }\n            }, project.id);\n          })]\n        })\n      }), _jsx(Card, {\n        style: styles.card,\n        children: _jsxs(Card.Content, {\n          children: [_jsx(Title, {\n            children: \"Quick Stats\"\n          }), _jsxs(View, {\n            style: styles.statsRow,\n            children: [_jsxs(View, {\n              style: styles.statItem,\n              children: [_jsx(Title, {\n                children: projects.length\n              }), _jsx(Paragraph, {\n                children: \"Projects\"\n              })]\n            }), _jsxs(View, {\n              style: styles.statItem,\n              children: [_jsx(Title, {\n                children: projects.reduce(function (sum, p) {\n                  return sum + p.templates.length;\n                }, 0)\n              }), _jsx(Paragraph, {\n                children: \"Templates Used\"\n              })]\n            }), _jsxs(View, {\n              style: styles.statItem,\n              children: [_jsx(Title, {\n                children: activeProjects.length\n              }), _jsx(Paragraph, {\n                children: \"Active\"\n              })]\n            })]\n          })]\n        })\n      })]\n    }), _jsx(FAB, {\n      style: styles.fab,\n      icon: \"plus\",\n      onPress: function onPress() {}\n    })]\n  });\n}\nvar 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","jsx","_jsx","jsxs","_jsxs","HomeScreen","projects","state","activeProjects","progress","style","styles","container","children","scrollView","length","card","Content","map","project","Item","title","name","description","currentStep","left","props","Icon","_objectSpread","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":{},"sourceType":"module","externalDependencies":[]}