bento-get 1.108.4 → 1.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/commands/index.js +266 -142
  2. package/dist/commands/index.js.map +2 -2
  3. package/dist/commands/index.mjs +242 -145
  4. package/dist/commands/index.mjs.map +1 -1
  5. package/dist/commands/index.native.js +287 -131
  6. package/dist/commands/index.native.js.map +2 -2
  7. package/dist/components.js +11 -3
  8. package/dist/components.js.map +1 -1
  9. package/dist/components.mjs +7 -3
  10. package/dist/components.mjs.map +1 -1
  11. package/dist/components.native.js +16 -3
  12. package/dist/components.native.js.map +2 -2
  13. package/dist/hooks/useFetchComponent.js +82 -0
  14. package/dist/hooks/useFetchComponent.js.map +6 -0
  15. package/dist/hooks/useFetchComponent.mjs +89 -0
  16. package/dist/hooks/useFetchComponent.mjs.map +1 -0
  17. package/dist/hooks/useFetchComponent.native.js +369 -0
  18. package/dist/hooks/useFetchComponent.native.js.map +6 -0
  19. package/dist/hooks/useGithubAuth.js +8 -10
  20. package/dist/hooks/useGithubAuth.js.map +1 -1
  21. package/dist/hooks/useGithubAuth.mjs +15 -15
  22. package/dist/hooks/useGithubAuth.mjs.map +1 -1
  23. package/dist/hooks/useGithubAuth.native.js +13 -13
  24. package/dist/hooks/useGithubAuth.native.js.map +2 -2
  25. package/dist/hooks/useGithubAuthPooling.js +2 -2
  26. package/dist/hooks/useGithubAuthPooling.js.map +2 -2
  27. package/dist/hooks/useGithubAuthPooling.mjs +2 -2
  28. package/dist/hooks/useGithubAuthPooling.mjs.map +1 -1
  29. package/dist/hooks/useGithubAuthPooling.native.js +3 -3
  30. package/dist/hooks/useGithubAuthPooling.native.js.map +2 -2
  31. package/dist/hooks/useInstallComponent.js +109 -72
  32. package/dist/hooks/useInstallComponent.js.map +2 -2
  33. package/dist/hooks/useInstallComponent.mjs +100 -76
  34. package/dist/hooks/useInstallComponent.mjs.map +1 -1
  35. package/dist/hooks/useInstallComponent.native.js +319 -106
  36. package/dist/hooks/useInstallComponent.native.js.map +2 -2
  37. package/package.json +5 -5
  38. package/types/commands/index.d.ts +40 -2
  39. package/types/commands/index.d.ts.map +1 -1
  40. package/types/components.d.ts +2 -1
  41. package/types/components.d.ts.map +1 -1
  42. package/types/hooks/useFetchComponent.d.ts +9 -0
  43. package/types/hooks/useFetchComponent.d.ts.map +1 -0
  44. package/types/hooks/useFetchComponentFromGithub.d.ts +6 -0
  45. package/types/hooks/useGetComponent.d.ts +1 -1
  46. package/types/hooks/useGithubAuth.d.ts +1 -1
  47. package/types/hooks/useGithubAuth.d.ts.map +1 -1
  48. package/types/hooks/useGithubAuthPooling.d.ts.map +1 -1
  49. package/types/hooks/useInstallComponent.d.ts +16 -5
  50. package/types/hooks/useInstallComponent.d.ts.map +1 -1
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { Alert, Badge, Spinner } from "@inkjs/ui";
3
2
  import Conf from "conf";
4
3
  import { copy } from "copy-paste";
@@ -6,97 +5,134 @@ import Fuse from "fuse.js";
6
5
  import { Box, Spacer, Text, useApp, useInput } from "ink";
7
6
  import TextInput from "ink-text-input";
8
7
  import open from "open";
8
+ import React from "react";
9
+ import { filePathsToTree, treeToString } from "file-paths-to-tree";
9
10
  import { componentsList } from "../components.js";
10
11
  import { useGithubAuth } from "../hooks/useGithubAuth.js";
11
12
  import { useInstallComponent } from "../hooks/useInstallComponent.js";
12
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key, modifier, appContext) => {
14
+ const debugLog = (...args) => {
15
+ process.env.DEBUG === "true" && console.log(...args);
16
+ }, tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key, modifier, appContext) => {
14
17
  const {
15
- selectedId,
16
- setSelectedId,
17
- setInstall,
18
- results,
19
- copyToClipboard,
20
- setCopyToClipboard
18
+ selectedResultIndex,
19
+ setSelectedResultIndex,
20
+ setInstallState,
21
+ searchResults,
22
+ setCopyingToClipboard,
23
+ currentScreen,
24
+ setCurrentScreen,
25
+ setConfirmationPending
21
26
  } = appContext;
22
- if (modifier.shift + key === "l") {
27
+ if (modifier.shift && key === "l") {
23
28
  tokenStore.clear();
24
29
  return;
25
30
  }
26
- if (key === "c" && appContext.install.enterToOpenBrowser) {
27
- setCopyToClipboard(!0);
31
+ if (key === "c" && appContext.installState.shouldOpenBrowser) {
32
+ setCopyingToClipboard(!0);
28
33
  return;
29
34
  }
30
- if (modifier.escape && appContext.install.tokenIsInstalled) {
31
- appContext.setInstall((prev) => ({
35
+ if (currentScreen === "InstallConfirmScreen") {
36
+ if (key === "y") {
37
+ setConfirmationPending(!1), setCurrentScreen("SearchScreen");
38
+ return;
39
+ }
40
+ if (key === "n") {
41
+ setConfirmationPending(!0), setCurrentScreen("SearchScreen"), setSelectedResultIndex(-1), setInstallState((prev) => ({
42
+ ...prev,
43
+ componentToInstall: null,
44
+ installingComponent: null
45
+ }));
46
+ return;
47
+ }
48
+ return;
49
+ }
50
+ if (modifier.escape && appContext.installState.isTokenInstalled) {
51
+ appContext.setInstallState((prev) => ({
32
52
  ...prev,
33
53
  installingComponent: null,
34
- tokenIsInstalled: !1
54
+ isTokenInstalled: !1
35
55
  }));
36
56
  return;
37
57
  }
38
- if (modifier.escape && appContext.install.installingComponent !== null && !appContext.install.installingComponent?.isOSS) {
39
- appContext.setInstall((prev) => ({
58
+ if (modifier.escape && appContext.installState.installingComponent !== null && !appContext.installState.installingComponent?.isOSS) {
59
+ appContext.setInstallState((prev) => ({
40
60
  ...prev,
41
61
  installingComponent: null,
42
- enterToOpenBrowser: !1
62
+ shouldOpenBrowser: !1
43
63
  }));
44
64
  return;
45
65
  }
46
66
  if (modifier.escape) {
47
- appContext.exit();
67
+ if (currentScreen === "InstallConfirmScreen") {
68
+ setCurrentScreen("SearchScreen");
69
+ return;
70
+ }
71
+ appContext.exitApp();
48
72
  return;
49
73
  }
50
- if (!(appContext.install.installingComponent && (modifier.upArrow || modifier.downArrow))) {
51
- if (modifier.return && !appContext.install.installingComponent?.isOSS && appContext.install.enterToOpenBrowser) {
74
+ if (!(appContext.installState.installingComponent && (modifier.upArrow || modifier.downArrow))) {
75
+ if (modifier.return && !appContext.installState.installingComponent?.isOSS && appContext.installState.shouldOpenBrowser) {
52
76
  open("https://github.com/login/device");
53
77
  return;
54
78
  }
55
- if (!appContext.install.installingComponent?.isOSS) {
56
- if (modifier.upArrow) {
57
- selectedId > -1 && setSelectedId(selectedId - 1);
58
- return;
59
- }
60
- if (modifier.downArrow) {
61
- selectedId < appContext.results.length - 1 && setSelectedId(selectedId + 1);
62
- return;
63
- }
64
- if (modifier.return) {
65
- setInstall((prev) => ({
66
- ...prev,
67
- installingComponent: results[selectedId]?.item
68
- }));
69
- return;
70
- }
79
+ if (modifier.upArrow) {
80
+ selectedResultIndex > -1 && setSelectedResultIndex(selectedResultIndex - 1);
81
+ return;
82
+ }
83
+ if (modifier.downArrow) {
84
+ selectedResultIndex < appContext.searchResults.length - 1 && setSelectedResultIndex(selectedResultIndex + 1);
85
+ return;
86
+ }
87
+ if (modifier.return) {
88
+ setInstallState((prev) => ({
89
+ ...prev,
90
+ installingComponent: searchResults[selectedResultIndex]?.item
91
+ })), debugLog("Installing component", searchResults[selectedResultIndex]?.item), setCurrentScreen("InstallConfirmScreen");
92
+ return;
71
93
  }
72
94
  }
73
95
  }, AppContext = React.createContext({
74
96
  tokenStore: {},
75
- copyToClipboard: !1,
76
- setCopyToClipboard: () => {
97
+ isCopyingToClipboard: !1,
98
+ setCopyingToClipboard: () => {
99
+ },
100
+ searchResults: [],
101
+ setSearchResults: () => {
77
102
  },
78
- results: [],
79
- setResults: () => {
103
+ selectedResultIndex: -1,
104
+ setSelectedResultIndex: () => {
80
105
  },
81
- selectedId: -1,
82
- setSelectedId: () => {
106
+ searchInput: "",
107
+ setSearchInput: () => {
83
108
  },
84
- input: "",
85
- setInput: () => {
109
+ setInstallState: () => {
86
110
  },
87
- setInstall: () => {
111
+ setInstallingComponent: () => {
88
112
  },
89
- setInstallcomponent: () => {
113
+ installState: {
114
+ installingComponent: null,
115
+ installedComponents: [],
116
+ shouldOpenBrowser: !1,
117
+ isTokenInstalled: !1,
118
+ componentToInstall: null
90
119
  },
91
- install: null
120
+ exitApp: () => {
121
+ },
122
+ currentScreen: "SearchScreen",
123
+ setCurrentScreen: () => {
124
+ },
125
+ confirmationPending: !1,
126
+ setConfirmationPending: () => {
127
+ }
92
128
  }), SearchBar = () => {
93
- const appContext = React.useContext(AppContext), search = (query) => new Fuse(componentsList, {
129
+ const appContext = React.useContext(AppContext), performSearch = (query) => new Fuse(componentsList, {
94
130
  keys: ["name", "category", "categorySection"]
95
- }).search(query), handleChange = (value) => {
96
- if (appContext.install.installingComponent?.isOSS) return;
97
- appContext.setInput(value);
98
- const results = search(value);
99
- appContext.setResults(results), appContext.setSelectedId(-1);
131
+ }).search(query), handleInputChange = (value) => {
132
+ if (appContext.currentScreen !== "SearchScreen" || appContext.installState.installingComponent?.isOSS) return;
133
+ appContext.setSearchInput(value);
134
+ const results = performSearch(value);
135
+ appContext.setSearchResults(results), appContext.setSelectedResultIndex(-1);
100
136
  };
101
137
  return /* @__PURE__ */ jsxs(Box, { marginX: 1, justifyContent: "space-between", children: [
102
138
  /* @__PURE__ */ jsxs(Box, { children: [
@@ -104,8 +140,8 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
104
140
  /* @__PURE__ */ jsx(
105
141
  TextInput,
106
142
  {
107
- value: appContext.input,
108
- onChange: handleChange,
143
+ value: appContext.searchInput,
144
+ onChange: handleInputChange,
109
145
  marginRight: "auto"
110
146
  }
111
147
  )
@@ -114,32 +150,42 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
114
150
  ] });
115
151
  }, ResultsContainer = () => {
116
152
  const appContext = React.useContext(AppContext);
117
- return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", display: appContext.results.length ? "flex" : "none", children: [
118
- /* @__PURE__ */ jsx(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, gap: 1, children: appContext.results.slice(0, 5).map((result, i) => /* @__PURE__ */ jsx(
119
- ResultCard,
120
- {
121
- result,
122
- isSelected: appContext.selectedId === i
123
- },
124
- result.item.fileName
125
- )) }),
126
- /* @__PURE__ */ jsx(Footer, {})
127
- ] });
153
+ return /* @__PURE__ */ jsxs(
154
+ Box,
155
+ {
156
+ flexDirection: "column",
157
+ display: appContext.searchResults.length ? "flex" : "none",
158
+ children: [
159
+ /* @__PURE__ */ jsx(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, gap: 1, children: appContext.searchResults.slice(0, 5).map((result, i) => /* @__PURE__ */ jsx(
160
+ ResultCard,
161
+ {
162
+ result,
163
+ isSelected: appContext.selectedResultIndex === i
164
+ },
165
+ result.item.fileName
166
+ )) }),
167
+ /* @__PURE__ */ jsx(Footer, {})
168
+ ]
169
+ }
170
+ );
128
171
  }, Footer = () => /* @__PURE__ */ jsx(Box, { flexDirection: "row", justifyContent: "flex-end", marginRight: 1, children: /* @__PURE__ */ jsxs(Text, { children: [
129
172
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "ESC" }),
130
173
  " to exit"
131
174
  ] }) }), InstalledBadge = ({ item }) => {
132
- const appContext = React.useContext(AppContext), componentIsInstalled = appContext.install?.installedComponents?.map((component) => component.fileName).includes(item.fileName);
133
- return appContext.install?.installedComponents ? componentIsInstalled && /* @__PURE__ */ jsx(Box, { marginLeft: 1, children: /* @__PURE__ */ jsx(Badge, { color: "green", children: "Installed" }) }) : null;
134
- }, ResultCard = ({ result, isSelected }) => {
175
+ const appContext = React.useContext(AppContext), isComponentInstalled = appContext.installState?.installedComponents?.map((component) => component.fileName).includes(item.fileName);
176
+ return appContext.installState?.installedComponents ? isComponentInstalled && /* @__PURE__ */ jsx(Box, { marginLeft: 1, children: /* @__PURE__ */ jsx(Badge, { color: "green", children: "Installed" }) }) : null;
177
+ }, ResultCard = ({
178
+ result,
179
+ isSelected
180
+ }) => {
135
181
  const appContext = React.useContext(AppContext);
136
182
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "row", minWidth: "100%", children: [
137
183
  /* @__PURE__ */ jsxs(Box, { flexDirection: "row", children: [
138
- /* @__PURE__ */ jsx(Text, { textWrap: "nowrap", bold: !0, style: { textWrap: "nowrap" }, color: "gray", children: (() => {
184
+ /* @__PURE__ */ jsx(Text, { bold: !0, color: "gray", children: (() => {
139
185
  switch (!0) {
140
- case (appContext.install.installingComponent && isSelected):
186
+ case (appContext.installState.installingComponent && isSelected):
141
187
  return "";
142
- case appContext.install.installingComponent:
188
+ case !!appContext.installState.installingComponent:
143
189
  return " ";
144
190
  case isSelected:
145
191
  return "\u276F ";
@@ -147,38 +193,35 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
147
193
  return " ";
148
194
  }
149
195
  })() }),
150
- appContext.install.installingComponent && isSelected && /* @__PURE__ */ jsx(InstallComponent, {}),
151
- /* @__PURE__ */ jsx(Text, { bold: !0, style: { textWrap: "nowrap" }, color: isSelected ? "white" : "black", children: result.item?.name }),
196
+ appContext.installState.installingComponent && isSelected && /* @__PURE__ */ jsx(InstallingSpinnerLabel, {}),
197
+ /* @__PURE__ */ jsx(Text, { bold: !0, color: isSelected ? "white" : "black", children: result.item?.name }),
152
198
  /* @__PURE__ */ jsx(InstalledBadge, { item: result.item })
153
199
  ] }),
154
200
  /* @__PURE__ */ jsx(Spacer, {}),
155
- /* @__PURE__ */ jsx(TypeOfComponentAccess, { item: result.item }),
201
+ /* @__PURE__ */ jsx(ComponentAccessType, { item: result.item }),
156
202
  /* @__PURE__ */ jsx(CategorySectionBadge, { item: result.item })
157
203
  ] });
158
204
  }, CategorySectionBadge = ({ item }) => {
159
- const appContext = React.useContext(AppContext);
205
+ const capitalizeFirstLetter = (str) => str.charAt(0).toUpperCase() + str.slice(1);
160
206
  return /* @__PURE__ */ jsx(Box, { marginLeft: 1, gap: 1, children: /* @__PURE__ */ jsxs(Text, { color: "black", backgroundColor: "white", children: [
161
207
  " ",
162
- item?.category.charAt(0).toUpperCase() + item?.category.slice(1),
208
+ capitalizeFirstLetter(item?.category),
163
209
  " ",
164
210
  ">",
165
211
  " ",
166
- item?.categorySection.charAt(0).toUpperCase() + item?.categorySection.slice(1),
212
+ capitalizeFirstLetter(item?.categorySection),
167
213
  " "
168
214
  ] }) });
169
- }, TypeOfComponentAccess = ({ item }) => {
170
- const appContext = React.useContext(AppContext);
171
- return /* @__PURE__ */ jsx(Box, { marginLeft: 1, gap: 1, display: item?.isOSS ? "flex" : "none", children: /* @__PURE__ */ jsx(Text, { color: "black", backgroundColor: "gray", children: "OSS" }) });
172
- }, ResultsCounter = () => {
173
- const appContext = React.useContext(AppContext);
174
- return /* @__PURE__ */ jsx(Box, { children: !!appContext.results.length && /* @__PURE__ */ jsxs(Text, { bold: !0, color: "gray", children: [
175
- appContext.results.length,
215
+ }, ComponentAccessType = ({ item }) => /* @__PURE__ */ jsx(Box, { marginLeft: 1, gap: 1, children: /* @__PURE__ */ jsx(Text, { color: "black", backgroundColor: item?.isOSS ? "green" : "blue", children: item?.isOSS ? "FREE" : "PRO" }) }), ResultsCounter = () => {
216
+ const resultCount = React.useContext(AppContext).searchResults.length;
217
+ return /* @__PURE__ */ jsx(Box, { children: !!resultCount && /* @__PURE__ */ jsxs(Text, { bold: !0, color: "gray", children: [
218
+ resultCount,
176
219
  " result",
177
- appContext.results.length > 1 ? "s" : ""
220
+ resultCount > 1 ? "s" : ""
178
221
  ] }) });
179
- }, InstallComponent = () => {
222
+ }, InstallingSpinnerLabel = () => {
180
223
  const appContext = React.useContext(AppContext);
181
- return /* @__PURE__ */ jsx(Box, { children: appContext.install.installingComponent ? /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Spinner, { label: "Installing " }) }) : /* @__PURE__ */ jsx(Box, { marginRight: 2 }) });
224
+ return /* @__PURE__ */ jsx(Box, { children: appContext.installState.installingComponent ? /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Spinner, { label: "Installing " }) }) : /* @__PURE__ */ jsx(Box, { marginRight: 2 }) });
182
225
  }, UsageBanner = () => /* @__PURE__ */ jsxs(Alert, { variant: "info", children: [
183
226
  "Search any component by category, section or name. ",
184
227
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "Up" }),
@@ -190,19 +233,19 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
190
233
  " to install."
191
234
  ] }), CodeAuthScreen = () => {
192
235
  const appContext = React.useContext(AppContext), { data, isLoading } = useGithubAuth();
193
- return React.useEffect(() => (appContext.setInstall((prev) => ({
236
+ return React.useEffect(() => (appContext.setInstallState((prev) => ({
194
237
  ...prev,
195
- enterToOpenBrowser: !0
238
+ shouldOpenBrowser: !0
196
239
  })), () => {
197
- appContext.setCopyToClipboard(!1);
198
- }), []), appContext.tokenStore.onDidChange("token", (newvalue, oldvalue) => {
199
- appContext.setInstall((prev) => ({
240
+ appContext.setCopyingToClipboard(!1);
241
+ }), []), appContext.tokenStore.onDidChange("token", () => {
242
+ appContext.setInstallState((prev) => ({
200
243
  ...prev,
201
- tokenIsInstalled: !0
244
+ isTokenInstalled: !0
202
245
  }));
203
246
  }), React.useEffect(() => {
204
- appContext.copyToClipboard && (copy(data?.user_code), console.warn("Copied to clipboard"));
205
- }, [appContext.copyToClipboard]), /* @__PURE__ */ jsxs(Box, { flexDirection: "column", display: "flex", children: [
247
+ appContext.isCopyingToClipboard && (copy(data?.user_code), console.warn("Copied to clipboard"));
248
+ }, [appContext.isCopyingToClipboard]), /* @__PURE__ */ jsxs(Box, { flexDirection: "column", display: "flex", children: [
206
249
  /* @__PURE__ */ jsxs(Alert, { variant: "info", children: [
207
250
  "Press ",
208
251
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "Enter" }),
@@ -214,13 +257,13 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
214
257
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "ESC" }),
215
258
  " to go Back"
216
259
  ] }),
217
- appContext.copyToClipboard ? /* @__PURE__ */ jsx(Text, { color: "green", children: "copied!" }) : /* @__PURE__ */ jsxs(Text, { children: [
260
+ appContext.isCopyingToClipboard ? /* @__PURE__ */ jsx(Text, { color: "green", children: "copied!" }) : /* @__PURE__ */ jsxs(Text, { children: [
218
261
  "Hit ",
219
262
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "c" }),
220
263
  " to copy to clipboard"
221
264
  ] })
222
265
  ] }),
223
- /* @__PURE__ */ jsx(Box, { flexDirection: "row", borderStyle: "round", paddingY: 1, justifyContent: "center", children: appContext.install.tokenIsInstalled ? /* @__PURE__ */ jsx(Box, { paddingY: 1, children: /* @__PURE__ */ jsxs(Text, { color: "green", children: [
266
+ /* @__PURE__ */ jsx(Box, { flexDirection: "row", borderStyle: "round", paddingY: 1, justifyContent: "center", children: appContext.installState.isTokenInstalled ? /* @__PURE__ */ jsx(Box, { paddingY: 1, children: /* @__PURE__ */ jsxs(Text, { color: "green", children: [
224
267
  "Github Authentication Successful. Press ",
225
268
  /* @__PURE__ */ jsx(Text, { underline: !0, children: "ESC" }),
226
269
  " to go back \u2714\uFE0E"
@@ -235,70 +278,151 @@ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (key
235
278
  height: 3,
236
279
  alignItems: "center",
237
280
  justifyContent: "center",
238
- children: /* @__PURE__ */ jsx(Text, { width: 5, children: item })
281
+ children: /* @__PURE__ */ jsx(Text, { children: item })
239
282
  },
240
283
  key
241
284
  )) })
242
285
  ] });
286
+ }, InstallConfirmScreen = () => {
287
+ const appContext = React.useContext(AppContext), { componentToInstall, installingComponent } = appContext.installState;
288
+ if (!componentToInstall || !installingComponent)
289
+ return null;
290
+ const allInstallPaths = (() => {
291
+ const callDirectory = process.cwd(), basePath = `${componentToInstall.path}/${installingComponent.category}/${installingComponent.categorySection}`.replace(
292
+ callDirectory,
293
+ ""
294
+ ), mainComponentPath = `${basePath}/${installingComponent.fileName}.tsx`, dependencyPaths = (installingComponent.bentoDependencies || []).map((dep) => {
295
+ const [fileName, folder] = dep.split("/").reverse();
296
+ return folder ? `${basePath}/${folder}/${fileName}.tsx` : `${basePath}/${fileName}.tsx`;
297
+ }), allPaths = [mainComponentPath, ...dependencyPaths], longestPathParts = allPaths.reduce((a, b) => a.length > b.length ? a : b).split("/"), startIndex = Math.max(0, longestPathParts.length - 7), prunedLongestPath = longestPathParts.slice(startIndex).join("/");
298
+ return {
299
+ basePath,
300
+ mainComponentPath,
301
+ dependencyPaths,
302
+ allPaths: allPaths.map((path) => {
303
+ const parts = path.split("/"), startFromIndex = parts.findIndex(
304
+ (segment) => prunedLongestPath.includes(segment)
305
+ );
306
+ return parts.slice(startFromIndex).join("/");
307
+ })
308
+ };
309
+ })().allPaths;
310
+ return /* @__PURE__ */ jsxs(
311
+ Box,
312
+ {
313
+ flexDirection: "column",
314
+ padding: 1,
315
+ gap: 2,
316
+ borderColor: "white",
317
+ borderStyle: "round",
318
+ children: [
319
+ /* @__PURE__ */ jsxs(Text, { children: [
320
+ 'CONFIRM: Install the component "',
321
+ /* @__PURE__ */ jsx(Text, { bold: !0, children: componentToInstall.name }),
322
+ '" here?'
323
+ ] }),
324
+ /* @__PURE__ */ jsxs(
325
+ Box,
326
+ {
327
+ borderColor: "blue",
328
+ flexDirection: "column",
329
+ padding: 1,
330
+ borderStyle: "round",
331
+ gap: 1,
332
+ children: [
333
+ /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: allInstallPaths.map((path, i) => /* @__PURE__ */ jsxs(Text, { children: [
334
+ "- ",
335
+ path
336
+ ] }, i)) }),
337
+ /* @__PURE__ */ jsx(Box, { borderColor: "blue", borderStyle: "round", padding: 1, children: /* @__PURE__ */ jsx(Text, { children: treeToString(
338
+ filePathsToTree(allInstallPaths, {
339
+ connectors: {
340
+ tee: "\u251C\u2500 ",
341
+ elbow: "\u2514\u2500 ",
342
+ padding: " "
343
+ }
344
+ })
345
+ ) }) })
346
+ ]
347
+ }
348
+ ),
349
+ /* @__PURE__ */ jsx(Spacer, {}),
350
+ /* @__PURE__ */ jsxs(Text, { children: [
351
+ "Press",
352
+ " ",
353
+ /* @__PURE__ */ jsx(Text, { color: "green", bold: !0, children: "Y" }),
354
+ " ",
355
+ "to confirm or",
356
+ " ",
357
+ /* @__PURE__ */ jsx(Text, { color: "red", bold: !0, children: "N" }),
358
+ " ",
359
+ "to cancel."
360
+ ] })
361
+ ]
362
+ }
363
+ );
243
364
  };
244
- function Search() {
245
- const [results, setResults] = React.useState([]), [selectedId, setSelectedId] = React.useState(-1), [input, setInput] = React.useState(""), [install, setInstall] = React.useState({
365
+ function BentoGet() {
366
+ const [searchResults, setSearchResults] = React.useState([]), [selectedResultIndex, setSelectedResultIndex] = React.useState(-1), [searchInput, setSearchInput] = React.useState(""), [confirmationPending, setConfirmationPending] = React.useState(!0), [installState, setInstallState] = React.useState({
246
367
  installingComponent: null,
247
368
  installedComponents: [],
248
- enterToOpenBrowser: !1,
249
- tokenIsInstalled: !1
250
- }), [copyToClipboard, setCopyToClipboard] = React.useState(!1), { exit } = useApp(), { access_token } = tokenStore?.get("token") ?? {};
251
- return useInput(
252
- (input2, key) => handleKeypress(input2, key, {
369
+ shouldOpenBrowser: !1,
370
+ isTokenInstalled: !1,
371
+ componentToInstall: null
372
+ }), [currentScreen, setCurrentScreen] = React.useState("SearchScreen"), [isCopyingToClipboard, setCopyingToClipboard] = React.useState(!1), { exit } = useApp(), appContextValues = React.useMemo(
373
+ () => ({
253
374
  tokenStore,
254
- copyToClipboard,
255
- setCopyToClipboard,
256
- exit,
257
- results,
258
- setResults,
259
- selectedId,
260
- setSelectedId,
261
- input: input2,
262
- setInput,
263
- setInstall,
264
- install
265
- })
266
- ), /* @__PURE__ */ jsx(
267
- AppContext.Provider,
268
- {
269
- value: {
270
- tokenStore,
271
- copyToClipboard,
272
- setCopyToClipboard,
273
- results,
274
- setResults,
275
- selectedId,
276
- setSelectedId,
277
- input,
278
- setInput,
279
- install,
280
- setInstall
375
+ isCopyingToClipboard,
376
+ setCopyingToClipboard,
377
+ exitApp: exit,
378
+ searchResults,
379
+ setSearchResults,
380
+ selectedResultIndex,
381
+ setSelectedResultIndex,
382
+ searchInput,
383
+ setSearchInput,
384
+ setInstallState,
385
+ installState,
386
+ setInstallingComponent: () => {
281
387
  },
282
- children: /* @__PURE__ */ jsx(Provider, { children: /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
283
- /* @__PURE__ */ jsx(UsageBanner, {}),
284
- /* @__PURE__ */ jsx(SearchBar, {}),
285
- /* @__PURE__ */ jsx(ResultsContainer, {})
286
- ] }) }) })
287
- }
388
+ // This seems unused, consider removing
389
+ currentScreen,
390
+ setCurrentScreen,
391
+ confirmationPending,
392
+ setConfirmationPending
393
+ }),
394
+ [
395
+ isCopyingToClipboard,
396
+ searchResults,
397
+ selectedResultIndex,
398
+ searchInput,
399
+ installState,
400
+ currentScreen,
401
+ confirmationPending
402
+ ]
288
403
  );
404
+ return useInput((input, key) => handleKeypress(input, key, appContextValues)), /* @__PURE__ */ jsx(AppContext.Provider, { value: appContextValues, children: /* @__PURE__ */ jsx(Provider, { children: /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
405
+ currentScreen === "InstallConfirmScreen" && /* @__PURE__ */ jsx(InstallConfirmScreen, {}),
406
+ currentScreen === "SearchScreen" && /* @__PURE__ */ jsxs(Fragment, { children: [
407
+ /* @__PURE__ */ jsx(UsageBanner, {}),
408
+ /* @__PURE__ */ jsx(SearchBar, {}),
409
+ /* @__PURE__ */ jsx(ResultsContainer, {})
410
+ ] })
411
+ ] }) }) }) });
289
412
  }
290
413
  const Provider = ({ children }) => {
291
- const { error, data } = useInstallComponent();
414
+ const { error } = useInstallComponent();
292
415
  return error ? error.status === 401 ? /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: /* @__PURE__ */ jsx(CodeAuthScreen, {}) }) : /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
293
416
  /* @__PURE__ */ jsxs(Alert, { variant: "error", children: [
294
417
  "Error installing component: ",
295
- JSON.stringify(error)
418
+ JSON.stringify(error, null, 2)
296
419
  ] }),
297
420
  children
298
421
  ] }) : /* @__PURE__ */ jsx(Fragment, { children });
299
422
  };
300
423
  export {
301
424
  AppContext,
302
- Search as default
425
+ debugLog,
426
+ BentoGet as default
303
427
  };
304
428
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/index.tsx"],
4
- "mappings": "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",
5
- "names": ["input"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }