@bigbinary/neeto-github-frontend 2.2.2 → 2.2.4

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.
@@ -1,483 +0,0 @@
1
- import classnames from 'classnames';
2
- import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
3
- import Spinner from '@bigbinary/neetoui/Spinner';
4
- import { useQuery } from '@tanstack/react-query';
5
- import { isNotNil } from 'ramda';
6
- import axios from 'axios';
7
- import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
8
- import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
9
- import Github from '@bigbinary/neeto-icons/misc/Github';
10
- import Typography from '@bigbinary/neetoui/Typography';
11
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
12
- import Building from '@bigbinary/neeto-icons/Building';
13
- import Avatar from '@bigbinary/neetoui/Avatar';
14
- import Button from '@bigbinary/neetoui/Button';
15
- import Plus from '@bigbinary/neeto-icons/Plus';
16
- import Settings from '@bigbinary/neeto-icons/Settings';
17
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
18
- import { useState, createElement } from 'react';
19
- import { isPresent } from '@bigbinary/neeto-cist';
20
- import Search from '@bigbinary/neeto-molecules/Search';
21
- import { Trans, useTranslation } from 'react-i18next';
22
- import Lock from '@bigbinary/neeto-icons/Lock';
23
- import DateFormat from '@bigbinary/neeto-molecules/DateFormat';
24
-
25
- var _globalProps$organiza;
26
- var GITHUB_INTEGRATIONS_BASE_API_URL = "/github_integrations";
27
- ({
28
- integrator_id: globalProps === null || globalProps === void 0 ? void 0 : (_globalProps$organiza = globalProps.organization) === null || _globalProps$organiza === void 0 ? void 0 : _globalProps$organiza.id,
29
- integrator_type: "Organization"
30
- });
31
- var GITHUB_INTEGRATOR_PARAMS = {
32
- integratorId: globalProps.organization.id,
33
- integratorType: "Organization"
34
- };
35
-
36
- var baseUrl = "".concat(GITHUB_INTEGRATIONS_BASE_API_URL, "/app_installations");
37
- var githubAppUrl = function githubAppUrl(id) {
38
- return "".concat(baseUrl, "/").concat(id);
39
- };
40
- var repositories = function repositories() {
41
- return axios.get("".concat(githubAppUrl(globalProps.githubAppInstallationId), "/repositories"), {
42
- params: GITHUB_INTEGRATOR_PARAMS
43
- });
44
- };
45
- var githubAccountsApi = {
46
- repositories: repositories
47
- };
48
-
49
- var QUERY_KEYS = {
50
- GITHUB_REPOSITORIES_LIST: "github-repositories-list"
51
- };
52
- var STALE_TIME_CONFIG = {
53
- staleTime: DEFAULT_STALE_TIME
54
- };
55
-
56
- var useFetchGithubRepositories = function useFetchGithubRepositories(_ref) {
57
- var isConnected = _ref.isConnected;
58
- return useQuery({
59
- queryKey: [QUERY_KEYS.GITHUB_REPOSITORIES_LIST],
60
- queryFn: githubAccountsApi.repositories,
61
- staleTime: STALE_TIME_CONFIG.staleTime,
62
- enabled: isConnected && isNotNil(globalProps.githubAppInstallationId)
63
- });
64
- };
65
-
66
- var Header = withT(function (_ref) {
67
- var t = _ref.t;
68
- return /*#__PURE__*/jsxs("div", {
69
- className: "neeto-ui-text-gray-800 mb-1 flex w-full flex-row items-center space-x-2 font-sans text-lg font-medium leading-6 antialiased",
70
- children: [/*#__PURE__*/jsx(Github, {
71
- size: 16
72
- }), /*#__PURE__*/jsx(Typography, {
73
- style: "h4",
74
- children: t("neetoGithub.github")
75
- })]
76
- });
77
- });
78
-
79
- var Configure = withT(function (_ref) {
80
- var t = _ref.t,
81
- isConnected = _ref.isConnected,
82
- installationUrl = _ref.installationUrl;
83
- return /*#__PURE__*/jsx("div", {
84
- className: "neeto-ui-text-gray-900 flex-shrink-0 font-sans text-sm font-normal leading-6 antialiased",
85
- children: /*#__PURE__*/jsx(Button, {
86
- href: installationUrl,
87
- icon: isConnected ? Settings : Plus,
88
- iconPosition: "left",
89
- iconSize: 20,
90
- size: "small",
91
- style: "link",
92
- children: isConnected ? t("neetoGithub.configureAccount") : t("neetoGithub.connectAccount")
93
- })
94
- });
95
- });
96
-
97
- var List$1 = withT(function (_ref) {
98
- var t = _ref.t,
99
- accounts = _ref.accounts,
100
- isConnected = _ref.isConnected,
101
- installationUrl = _ref.installationUrl,
102
- isPane = _ref.isPane;
103
- return /*#__PURE__*/jsxs("div", {
104
- className: classnames("neeto-ui-border-gray-300 flex justify-between gap-3 border-b pb-4 pt-2", {
105
- "flex-col md:flex-row": isPane,
106
- "flex-col": !isPane
107
- }),
108
- children: [accounts.map(function (_ref2) {
109
- var id = _ref2.id,
110
- name = _ref2.name,
111
- avatarUrl = _ref2.avatarUrl,
112
- type = _ref2.type,
113
- profileUrl = _ref2.profileUrl,
114
- count = _ref2.count;
115
- return /*#__PURE__*/jsxs("div", {
116
- className: "flex w-full items-center space-x-2",
117
- children: [/*#__PURE__*/jsxs("div", {
118
- className: "flex items-center gap-1",
119
- children: [type === "Organization" ? /*#__PURE__*/jsx(Building, {
120
- className: "neeto-ui-text-gray-600",
121
- size: 24
122
- }) : /*#__PURE__*/jsx(Avatar, {
123
- size: "small",
124
- user: {
125
- imageUrl: avatarUrl
126
- }
127
- }), /*#__PURE__*/jsx(Typography, {
128
- className: "neeto-ui-text-gray-800",
129
- style: "body2",
130
- children: /*#__PURE__*/jsx(Button, {
131
- className: "neeto-ui-text-gray-800",
132
- label: "@".concat(name),
133
- style: "link",
134
- onClick: function onClick() {
135
- return window.open(profileUrl, "_blank");
136
- }
137
- })
138
- })]
139
- }), /*#__PURE__*/jsx("span", {
140
- className: "neeto-ui-bg-gray-800 neeto-ui-rounded-full h-1 w-1"
141
- }), /*#__PURE__*/jsx(Typography, {
142
- className: "neeto-ui-text-black",
143
- style: "body2",
144
- children: t("neetoGithub.countOf.repos", {
145
- count: count
146
- })
147
- })]
148
- }, id);
149
- }), /*#__PURE__*/jsx(Configure, {
150
- installationUrl: installationUrl,
151
- isConnected: isConnected
152
- })]
153
- });
154
- });
155
-
156
- var Accounts = function Accounts(_ref) {
157
- var isPane = _ref.isPane,
158
- accounts = _ref.accounts,
159
- isConnected = _ref.isConnected,
160
- onConnect = _ref.onConnect,
161
- installationUrl = _ref.installationUrl;
162
- return /*#__PURE__*/jsx("div", {
163
- className: classnames("flex w-full flex-col border border-solid border-transparent px-0 py-2", {
164
- "order-1": isPane,
165
- "md:order-2 md:max-w-72 lg:max-w-sm lg:px-6": !isPane
166
- }),
167
- children: /*#__PURE__*/jsxs("div", {
168
- className: "mb-2",
169
- children: [/*#__PURE__*/jsx(Header, {}), /*#__PURE__*/jsx(List$1, {
170
- accounts: accounts,
171
- installationUrl: installationUrl,
172
- isConnected: isConnected,
173
- isPane: isPane,
174
- onConnect: onConnect
175
- })]
176
- })
177
- });
178
- };
179
-
180
- var NoRepositories = withT(function (_ref) {
181
- var t = _ref.t,
182
- installationUrl = _ref.installationUrl,
183
- troubleshootUrl = _ref.troubleshootUrl;
184
- return /*#__PURE__*/jsx("div", {
185
- className: "flex items-center justify-center py-6",
186
- children: /*#__PURE__*/jsxs("div", {
187
- className: "mx-auto flex w-full max-w-sm flex-col items-center justify-center space-y-4 py-4 text-center",
188
- children: [/*#__PURE__*/jsx(Typography, {
189
- style: "body2",
190
- children: t("neetoGithub.noReposDescription")
191
- }), /*#__PURE__*/jsx(Button, {
192
- href: installationUrl,
193
- icon: Github,
194
- iconPosition: "left",
195
- label: t("neetoGithub.connectRepository"),
196
- size: "medium",
197
- style: "primary"
198
- }), /*#__PURE__*/jsx("div", {
199
- className: "text-xs",
200
- children: /*#__PURE__*/jsx(Trans, {
201
- i18nKey: t("neetoGithub.troubleshoot"),
202
- components: {
203
- troubleshootLink: /*#__PURE__*/jsx("a", {
204
- className: "text-indigo-600 underline",
205
- href: troubleshootUrl,
206
- rel: "noopener noreferrer",
207
- target: "_blank"
208
- })
209
- }
210
- })
211
- })]
212
- })
213
- });
214
- });
215
-
216
- var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
217
-
218
- var css = ".width-calc{width:100%}@media (min-width:768px){.width-calc{width:calc(100% - 82px)}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvcmVwb3NpdG9yeS10aWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFDRSxVQUNGLENBQ0UseUJBSEYsWUFJSSx1QkFFRixDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLndpZHRoLWNhbGMge1xuICB3aWR0aDogMTAwJTtcblxuICBAc2NyZWVuIG1kIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gODJweCk7XG4gIH1cbn1cbiJdfQ== */";
219
- n(css,{});
220
-
221
- var RepositoryTile = function RepositoryTile(_ref) {
222
- var isConnecting = _ref.isConnecting,
223
- onConnect = _ref.onConnect,
224
- repository = _ref.repository;
225
- var _useTranslation = useTranslation(),
226
- t = _useTranslation.t;
227
- var _useState = useState(false),
228
- _useState2 = _slicedToArray(_useState, 2),
229
- isLoading = _useState2[0],
230
- setIsLoading = _useState2[1];
231
- var id = repository.id,
232
- fullName = repository.fullName,
233
- isPrivate = repository.isPrivate,
234
- updatedAt = repository.updatedAt;
235
- return /*#__PURE__*/jsxs("div", {
236
- className: "neeto-ui-border-gray-300 flex flex-col justify-between gap-3 border-b border-solid py-3 pl-3 pr-3 last:border-b-0 md:flex-row md:items-center md:pl-5",
237
- children: [/*#__PURE__*/jsxs("div", {
238
- className: "width-calc flex items-center space-x-2",
239
- children: [/*#__PURE__*/jsx(Github, {
240
- className: "flex-shrink-0",
241
- size: 16
242
- }), /*#__PURE__*/jsx(Typography, {
243
- style: "body2",
244
- children: fullName
245
- }), isPrivate && /*#__PURE__*/jsx(Lock, {
246
- className: "flex-shrink-0",
247
- size: 16
248
- }), /*#__PURE__*/jsxs("div", {
249
- className: "hidden lg:inline-block",
250
- children: [/*#__PURE__*/jsx("span", {
251
- className: "neeto-ui-bg-gray-800 neeto-ui-rounded-full h-1 w-1"
252
- }), /*#__PURE__*/jsx(DateFormat.FromNow, {
253
- date: updatedAt
254
- })]
255
- })]
256
- }), /*#__PURE__*/jsx(Button, {
257
- className: "w-max",
258
- disabled: isConnecting,
259
- loading: isLoading,
260
- style: "primary",
261
- type: "button",
262
- onClick: function onClick() {
263
- return onConnect({
264
- repoType: "private",
265
- repository: repository,
266
- setIsLoading: setIsLoading
267
- });
268
- },
269
- children: t("neetoGithub.connect")
270
- })]
271
- }, id);
272
- };
273
-
274
- var List = withT(function (_ref) {
275
- var t = _ref.t,
276
- filteredRepositories = _ref.filteredRepositories,
277
- repositories = _ref.repositories,
278
- isConnecting = _ref.isConnecting,
279
- onConnect = _ref.onConnect,
280
- installationUrl = _ref.installationUrl,
281
- troubleshootUrl = _ref.troubleshootUrl;
282
- return /*#__PURE__*/jsx("div", {
283
- className: "h-full overflow-y-scroll px-4 pb-4 md:px-6 md:pb-6",
284
- children: isPresent(repositories) ? /*#__PURE__*/jsx("div", {
285
- className: classnames("neeto-ui-border-gray-300 neeto-ui-rounded-md flex flex-col items-center justify-center border", {
286
- "h-auto": isPresent(filteredRepositories),
287
- "h-full": !isPresent(filteredRepositories)
288
- }),
289
- children: /*#__PURE__*/jsx("div", {
290
- className: "m-0 h-full w-full p-0",
291
- children: isPresent(filteredRepositories) ? filteredRepositories.map(function (repository, index) {
292
- return /*#__PURE__*/createElement(RepositoryTile, {
293
- isConnecting: isConnecting,
294
- onConnect: onConnect,
295
- repository: repository,
296
- key: index
297
- });
298
- }) : /*#__PURE__*/jsx(Typography, {
299
- className: "flex h-full w-full items-center justify-center",
300
- style: "body2",
301
- children: t("neetoGithub.noRepos")
302
- })
303
- })
304
- }) : /*#__PURE__*/jsx(NoRepositories, {
305
- installationUrl: installationUrl,
306
- troubleshootUrl: troubleshootUrl
307
- })
308
- });
309
- });
310
-
311
- var NotConnected = withT(function (_ref) {
312
- var t = _ref.t,
313
- installationUrl = _ref.installationUrl;
314
- return /*#__PURE__*/jsxs("div", {
315
- className: "flex w-full max-w-sm flex-col items-center justify-center space-y-4 text-center",
316
- children: [/*#__PURE__*/jsx(Typography, {
317
- style: "body2",
318
- children: t("neetoGithub.notConnectedDescription", {
319
- appName: globalProps.appName
320
- })
321
- }), /*#__PURE__*/jsx(Button, {
322
- href: installationUrl,
323
- icon: Github,
324
- iconPosition: "left",
325
- label: t("neetoGithub.connectGithub"),
326
- size: "medium",
327
- style: "primary"
328
- })]
329
- });
330
- });
331
-
332
- var Private = function Private(_ref) {
333
- var isConnected = _ref.isConnected,
334
- isConnecting = _ref.isConnecting,
335
- repositories = _ref.repositories,
336
- onConnect = _ref.onConnect,
337
- installationUrl = _ref.installationUrl,
338
- troubleshootUrl = _ref.troubleshootUrl;
339
- var _useTranslation = useTranslation(),
340
- t = _useTranslation.t;
341
- var _useState = useState(repositories),
342
- _useState2 = _slicedToArray(_useState, 2),
343
- filteredRepositories = _useState2[0],
344
- setFilteredRepositories = _useState2[1];
345
- var onSearch = function onSearch(searchTerm) {
346
- if (!isPresent(searchTerm)) {
347
- setFilteredRepositories(repositories);
348
- return;
349
- }
350
- var filteredRepositories = repositories.filter(function (_ref2) {
351
- var fullName = _ref2.fullName;
352
- return fullName.toLowerCase().includes(searchTerm.toLowerCase());
353
- });
354
- setFilteredRepositories(filteredRepositories);
355
- };
356
- return /*#__PURE__*/jsx("div", {
357
- className: "connect-repo flex h-full flex-col",
358
- children: isConnected ? /*#__PURE__*/jsxs(Fragment, {
359
- children: [/*#__PURE__*/jsxs("div", {
360
- className: "space-y-3 p-4 md:p-6",
361
- children: [/*#__PURE__*/jsx(Typography, {
362
- className: "flex-shrink-0 text-lg font-medium",
363
- style: "h2",
364
- children: t("neetoGithub.connectARepo")
365
- }), isPresent(repositories) && /*#__PURE__*/jsx(Search, {
366
- onSearch: onSearch,
367
- className: "w-full",
368
- unlimitedChars: false,
369
- suffix: /*#__PURE__*/jsx(Typography, {
370
- style: "body2",
371
- children: t("neetoGithub.countOf.repos", {
372
- count: filteredRepositories.length
373
- })
374
- })
375
- })]
376
- }), /*#__PURE__*/jsx("div", {
377
- className: "flex min-h-0 w-full flex-grow flex-col space-y-6",
378
- children: /*#__PURE__*/jsx(List, {
379
- filteredRepositories: filteredRepositories,
380
- installationUrl: installationUrl,
381
- isConnecting: isConnecting,
382
- onConnect: onConnect,
383
- repositories: repositories,
384
- troubleshootUrl: troubleshootUrl
385
- })
386
- })]
387
- }) : /*#__PURE__*/jsx("div", {
388
- className: "neeto-ui-text-gray-900 flex-grow font-sans text-sm font-normal leading-6 antialiased",
389
- children: /*#__PURE__*/jsx("div", {
390
- className: "flex h-full flex-col items-center justify-center p-4",
391
- children: /*#__PURE__*/jsx(NotConnected, {
392
- installationUrl: installationUrl
393
- })
394
- })
395
- })
396
- });
397
- };
398
-
399
- var Repositories = function Repositories(_ref) {
400
- var isConnected = _ref.isConnected,
401
- isConnecting = _ref.isConnecting,
402
- repositories = _ref.repositories,
403
- onConnect = _ref.onConnect,
404
- installationUrl = _ref.installationUrl,
405
- troubleshootUrl = _ref.troubleshootUrl,
406
- isPane = _ref.isPane;
407
- return /*#__PURE__*/jsx("div", {
408
- className: classnames("neeto-ui-rounded-md neeto-ui-border-gray-300 h-full w-full space-y-6 border border-solid", {
409
- "order-2": isPane,
410
- "order-1": !isPane
411
- }),
412
- children: /*#__PURE__*/jsx(Private, {
413
- installationUrl: installationUrl,
414
- isConnected: isConnected,
415
- isConnecting: isConnecting,
416
- onConnect: onConnect,
417
- repositories: repositories,
418
- troubleshootUrl: troubleshootUrl
419
- })
420
- });
421
- };
422
-
423
- var NeetoGithubNanoContainer = function NeetoGithubNanoContainer(_ref) {
424
- var _ref$isPaneLoading = _ref.isPaneLoading,
425
- isPaneLoading = _ref$isPaneLoading === void 0 ? false : _ref$isPaneLoading,
426
- _ref$shouldFetchRepos = _ref.shouldFetchRepositories,
427
- shouldFetchRepositories = _ref$shouldFetchRepos === void 0 ? true : _ref$shouldFetchRepos,
428
- _ref$paneAccounts = _ref.paneAccounts,
429
- paneAccounts = _ref$paneAccounts === void 0 ? [] : _ref$paneAccounts,
430
- installationUrl = _ref.installationUrl,
431
- isConnected = _ref.isConnected,
432
- _ref$isConnecting = _ref.isConnecting,
433
- isConnecting = _ref$isConnecting === void 0 ? false : _ref$isConnecting,
434
- onConnect = _ref.onConnect,
435
- _ref$paneRepositories = _ref.paneRepositories,
436
- paneRepositories = _ref$paneRepositories === void 0 ? [] : _ref$paneRepositories,
437
- troubleshootUrl = _ref.troubleshootUrl,
438
- _ref$isPane = _ref.isPane,
439
- isPane = _ref$isPane === void 0 ? false : _ref$isPane;
440
- var _useFetchGithubReposi = useFetchGithubRepositories({
441
- isConnected: shouldFetchRepositories && globalProps.isGithubIntegrated
442
- }),
443
- _useFetchGithubReposi2 = _useFetchGithubReposi.data,
444
- _useFetchGithubReposi3 = _useFetchGithubReposi2 === void 0 ? {} : _useFetchGithubReposi2,
445
- _useFetchGithubReposi4 = _useFetchGithubReposi3.repositories,
446
- containerRepositories = _useFetchGithubReposi4 === void 0 ? [] : _useFetchGithubReposi4,
447
- _useFetchGithubReposi5 = _useFetchGithubReposi3.accounts,
448
- containerAccounts = _useFetchGithubReposi5 === void 0 ? [] : _useFetchGithubReposi5,
449
- isContainerLoading = _useFetchGithubReposi.isLoading;
450
- var repositories = shouldFetchRepositories ? containerRepositories : paneRepositories;
451
- var accounts = shouldFetchRepositories ? containerAccounts : paneAccounts;
452
- var isLoading = shouldFetchRepositories ? isContainerLoading : isPaneLoading;
453
- if (isLoading) {
454
- return /*#__PURE__*/jsx("div", {
455
- className: "flex h-full w-full items-center justify-center",
456
- children: /*#__PURE__*/jsx(Spinner, {})
457
- });
458
- }
459
- return /*#__PURE__*/jsxs("div", {
460
- className: classnames("flex min-h-0 w-full flex-grow flex-col", {
461
- "flex-col": isPane,
462
- "gap-3 md:flex-row md:gap-6": !isPane
463
- }),
464
- children: [/*#__PURE__*/jsx(Accounts, {
465
- accounts: accounts,
466
- installationUrl: installationUrl,
467
- isConnected: isConnected,
468
- isPane: isPane,
469
- onConnect: onConnect
470
- }), /*#__PURE__*/jsx(Repositories, {
471
- installationUrl: installationUrl,
472
- isConnected: isConnected,
473
- isConnecting: isConnecting,
474
- isPane: isPane,
475
- onConnect: onConnect,
476
- repositories: repositories,
477
- troubleshootUrl: troubleshootUrl
478
- })]
479
- });
480
- };
481
-
482
- export { NeetoGithubNanoContainer as N, n, useFetchGithubRepositories as u };
483
- //# sourceMappingURL=index-C71Qp9QM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C71Qp9QM.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/apis/github_accounts.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useGithubAccountsApi.js","../app/javascript/src/components/commons/Accounts/Header.jsx","../app/javascript/src/components/commons/Accounts/Configure.jsx","../app/javascript/src/components/commons/Accounts/List.jsx","../app/javascript/src/components/commons/Accounts/index.jsx","../app/javascript/src/components/commons/Repositories/NoRepositories.jsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../app/javascript/src/components/commons/Repositories/RepositoryTile.jsx","../app/javascript/src/components/commons/Repositories/List.jsx","../app/javascript/src/components/commons/Repositories/NotConnected.jsx","../app/javascript/src/components/commons/Repositories/Private.jsx","../app/javascript/src/components/commons/Repositories/index.jsx","../app/javascript/src/components/NeetoGithubNanoContainer/index.jsx"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const GITHUB_INTEGRATIONS_BASE_API_URL = \"/github_integrations\";\n\nexport const GITHUB_INTEGRATIONS_COMMON_PARAMS = {\n integrator_id: globalProps?.organization?.id,\n integrator_type: \"Organization\",\n};\n\nexport const GITHUB_INTEGRATOR_PARAMS = {\n integratorId: globalProps.organization.id,\n integratorType: \"Organization\",\n};\n\nexport const JOBS_PER_PAGE = 6;\n\nexport const PROJECTS_PER_PAGE = 10;\n","import axios from \"axios\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport {\n GITHUB_INTEGRATIONS_BASE_API_URL,\n GITHUB_INTEGRATOR_PARAMS,\n} from \"src/constants\";\n\nconst baseUrl = `${GITHUB_INTEGRATIONS_BASE_API_URL}/app_installations`;\n\nconst githubAppUrl = id => `${baseUrl}/${id}`;\n\nconst repositories = () =>\n axios.get(\n `${githubAppUrl(globalProps.githubAppInstallationId)}/repositories`,\n { params: GITHUB_INTEGRATOR_PARAMS }\n );\n\nconst githubAccountsApi = { repositories };\n\nexport default githubAccountsApi;\n","import { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nexport const QUERY_KEYS = {\n GITHUB_REPOSITORIES_LIST: \"github-repositories-list\",\n};\n\nexport const STALE_TIME_CONFIG = { staleTime: DEFAULT_STALE_TIME };\n","import { useQuery } from \"@tanstack/react-query\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isNotNil } from \"ramda\";\n\nimport githubAccountsApi from \"apis/github_accounts\";\nimport { QUERY_KEYS, STALE_TIME_CONFIG } from \"src/constants/query\";\n\nexport const useFetchGithubRepositories = ({ isConnected }) =>\n useQuery({\n queryKey: [QUERY_KEYS.GITHUB_REPOSITORIES_LIST],\n queryFn: githubAccountsApi.repositories,\n staleTime: STALE_TIME_CONFIG.staleTime,\n enabled: isConnected && isNotNil(globalProps.githubAppInstallationId),\n });\n","import { withT } from \"neetocommons/react-utils\";\nimport { Github } from \"neetoicons/misc\";\nimport { Typography } from \"neetoui\";\n\nconst Header = withT(({ t }) => (\n <div className=\"neeto-ui-text-gray-800 mb-1 flex w-full flex-row items-center space-x-2 font-sans text-lg font-medium leading-6 antialiased\">\n <Github size={16} />\n <Typography style=\"h4\">{t(\"neetoGithub.github\")}</Typography>\n </div>\n));\n\nexport default Header;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Plus, Settings } from \"neetoicons\";\nimport { Button } from \"neetoui\";\n\nconst Configure = withT(({ t, isConnected, installationUrl }) => (\n <div className=\"neeto-ui-text-gray-900 flex-shrink-0 font-sans text-sm font-normal leading-6 antialiased\">\n <Button\n href={installationUrl}\n icon={isConnected ? Settings : Plus}\n iconPosition=\"left\"\n iconSize={20}\n size=\"small\"\n style=\"link\"\n >\n {isConnected\n ? t(\"neetoGithub.configureAccount\")\n : t(\"neetoGithub.connectAccount\")}\n </Button>\n </div>\n));\n\nexport default Configure;\n","import classnames from \"classnames\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Building } from \"neetoicons\";\nimport { Avatar, Button, Typography } from \"neetoui\";\n\nimport Configure from \"./Configure\";\n\nconst List = withT(({ t, accounts, isConnected, installationUrl, isPane }) => (\n <div\n className={classnames(\n \"neeto-ui-border-gray-300 flex justify-between gap-3 border-b pb-4 pt-2\",\n { \"flex-col md:flex-row\": isPane, \"flex-col\": !isPane }\n )}\n >\n {accounts.map(({ id, name, avatarUrl, type, profileUrl, count }) => (\n <div className=\"flex w-full items-center space-x-2\" key={id}>\n <div className=\"flex items-center gap-1\">\n {type === \"Organization\" ? (\n <Building className=\"neeto-ui-text-gray-600\" size={24} />\n ) : (\n <Avatar size=\"small\" user={{ imageUrl: avatarUrl }} />\n )}\n <Typography className=\"neeto-ui-text-gray-800\" style=\"body2\">\n <Button\n className=\"neeto-ui-text-gray-800\"\n label={`@${name}`}\n style=\"link\"\n onClick={() => window.open(profileUrl, \"_blank\")}\n />\n </Typography>\n </div>\n <span className=\"neeto-ui-bg-gray-800 neeto-ui-rounded-full h-1 w-1\" />\n <Typography className=\"neeto-ui-text-black\" style=\"body2\">\n {t(\"neetoGithub.countOf.repos\", { count })}\n </Typography>\n </div>\n ))}\n <Configure {...{ installationUrl, isConnected }} />\n </div>\n));\n\nexport default List;\n","import classnames from \"classnames\";\n\nimport Header from \"./Header\";\nimport List from \"./List\";\n\nconst Accounts = ({\n isPane,\n accounts,\n isConnected,\n onConnect,\n installationUrl,\n}) => (\n <div\n className={classnames(\n \"flex w-full flex-col border border-solid border-transparent px-0 py-2\",\n {\n \"order-1\": isPane,\n \"md:order-2 md:max-w-72 lg:max-w-sm lg:px-6\": !isPane,\n }\n )}\n >\n <div className=\"mb-2\">\n <Header />\n <List\n {...{ accounts, installationUrl, isConnected, isPane, onConnect }}\n />\n </div>\n </div>\n);\n\nexport default Accounts;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Github } from \"neetoicons/misc\";\nimport { Button, Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst NoRepositories = withT(({ t, installationUrl, troubleshootUrl }) => (\n <div className=\"flex items-center justify-center py-6\">\n <div className=\"mx-auto flex w-full max-w-sm flex-col items-center justify-center space-y-4 py-4 text-center\">\n <Typography style=\"body2\">\n {t(\"neetoGithub.noReposDescription\")}\n </Typography>\n <Button\n href={installationUrl}\n icon={Github}\n iconPosition=\"left\"\n label={t(\"neetoGithub.connectRepository\")}\n size=\"medium\"\n style=\"primary\"\n />\n <div className=\"text-xs\">\n <Trans\n i18nKey={t(\"neetoGithub.troubleshoot\")}\n components={{\n troubleshootLink: (\n <a\n className=\"text-indigo-600 underline\"\n href={troubleshootUrl}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n />\n ),\n }}\n />\n </div>\n </div>\n </div>\n));\n\nexport default NoRepositories;\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { useState } from \"react\";\n\nimport { Lock } from \"neetoicons\";\nimport { Github } from \"neetoicons/misc\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/repository-tile.scss\";\n\nconst RepositoryTile = ({ isConnecting, onConnect, repository }) => {\n const { t } = useTranslation();\n\n const [isLoading, setIsLoading] = useState(false);\n const { id, fullName, isPrivate, updatedAt } = repository;\n\n return (\n <div\n className=\"neeto-ui-border-gray-300 flex flex-col justify-between gap-3 border-b border-solid py-3 pl-3 pr-3 last:border-b-0 md:flex-row md:items-center md:pl-5\"\n key={id}\n >\n <div className=\"width-calc flex items-center space-x-2\">\n <Github className=\"flex-shrink-0\" size={16} />\n <Typography style=\"body2\">{fullName}</Typography>\n {isPrivate && <Lock className=\"flex-shrink-0\" size={16} />}\n <div className=\"hidden lg:inline-block\">\n <span className=\"neeto-ui-bg-gray-800 neeto-ui-rounded-full h-1 w-1\" />\n <DateFormat.FromNow date={updatedAt} />\n </div>\n </div>\n <Button\n className=\"w-max\"\n disabled={isConnecting}\n loading={isLoading}\n style=\"primary\"\n type=\"button\"\n onClick={() =>\n onConnect({ repoType: \"private\", repository, setIsLoading })\n }\n >\n {t(\"neetoGithub.connect\")}\n </Button>\n </div>\n );\n};\n\nexport default RepositoryTile;\n","import classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Typography } from \"neetoui\";\n\nimport NoRepositories from \"./NoRepositories\";\nimport RepositoryTile from \"./RepositoryTile\";\n\nconst List = withT(\n ({\n t,\n filteredRepositories,\n repositories,\n isConnecting,\n onConnect,\n installationUrl,\n troubleshootUrl,\n }) => (\n <div className=\"h-full overflow-y-scroll px-4 pb-4 md:px-6 md:pb-6\">\n {isPresent(repositories) ? (\n <div\n className={classNames(\n \"neeto-ui-border-gray-300 neeto-ui-rounded-md flex flex-col items-center justify-center border\",\n {\n \"h-auto\": isPresent(filteredRepositories),\n \"h-full\": !isPresent(filteredRepositories),\n }\n )}\n >\n <div className=\"m-0 h-full w-full p-0\">\n {isPresent(filteredRepositories) ? (\n filteredRepositories.map((repository, index) => (\n <RepositoryTile\n {...{ isConnecting, onConnect, repository }}\n key={index}\n />\n ))\n ) : (\n <Typography\n className=\"flex h-full w-full items-center justify-center\"\n style=\"body2\"\n >\n {t(\"neetoGithub.noRepos\")}\n </Typography>\n )}\n </div>\n </div>\n ) : (\n <NoRepositories {...{ installationUrl, troubleshootUrl }} />\n )}\n </div>\n )\n);\n\nexport default List;\n","import { globalProps } from \"neetocommons/initializers\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Github } from \"neetoicons/misc\";\nimport { Button, Typography } from \"neetoui\";\n\nconst NotConnected = withT(({ t, installationUrl }) => (\n <div className=\"flex w-full max-w-sm flex-col items-center justify-center space-y-4 text-center\">\n <Typography style=\"body2\">\n {t(\"neetoGithub.notConnectedDescription\", {\n appName: globalProps.appName,\n })}\n </Typography>\n <Button\n href={installationUrl}\n icon={Github}\n iconPosition=\"left\"\n label={t(\"neetoGithub.connectGithub\")}\n size=\"medium\"\n style=\"primary\"\n />\n </div>\n));\n\nexport default NotConnected;\n","import { useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport Search from \"neetomolecules/Search\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport List from \"./List\";\nimport NotConnected from \"./NotConnected\";\n\nconst Private = ({\n isConnected,\n isConnecting,\n repositories,\n onConnect,\n installationUrl,\n troubleshootUrl,\n}) => {\n const { t } = useTranslation();\n\n const [filteredRepositories, setFilteredRepositories] =\n useState(repositories);\n\n const onSearch = searchTerm => {\n if (!isPresent(searchTerm)) {\n setFilteredRepositories(repositories);\n\n return;\n }\n\n const filteredRepositories = repositories.filter(({ fullName }) =>\n fullName.toLowerCase().includes(searchTerm.toLowerCase())\n );\n setFilteredRepositories(filteredRepositories);\n };\n\n return (\n <div className=\"connect-repo flex h-full flex-col\">\n {isConnected ? (\n <>\n <div className=\"space-y-3 p-4 md:p-6\">\n <Typography\n className=\"flex-shrink-0 text-lg font-medium\"\n style=\"h2\"\n >\n {t(\"neetoGithub.connectARepo\")}\n </Typography>\n {isPresent(repositories) && (\n <Search\n {...{ onSearch }}\n className=\"w-full\"\n unlimitedChars={false}\n suffix={\n <Typography style=\"body2\">\n {t(\"neetoGithub.countOf.repos\", {\n count: filteredRepositories.length,\n })}\n </Typography>\n }\n />\n )}\n </div>\n <div className=\"flex min-h-0 w-full flex-grow flex-col space-y-6\">\n <List\n {...{\n filteredRepositories,\n installationUrl,\n isConnecting,\n onConnect,\n repositories,\n troubleshootUrl,\n }}\n />\n </div>\n </>\n ) : (\n <div className=\"neeto-ui-text-gray-900 flex-grow font-sans text-sm font-normal leading-6 antialiased\">\n <div className=\"flex h-full flex-col items-center justify-center p-4\">\n <NotConnected {...{ installationUrl }} />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Private;\n","import classnames from \"classnames\";\n\nimport Private from \"./Private\";\n\nconst Repositories = ({\n isConnected,\n isConnecting,\n repositories,\n onConnect,\n installationUrl,\n troubleshootUrl,\n isPane,\n}) => (\n <div\n className={classnames(\n \"neeto-ui-rounded-md neeto-ui-border-gray-300 h-full w-full space-y-6 border border-solid\",\n { \"order-2\": isPane, \"order-1\": !isPane }\n )}\n >\n <Private\n {...{\n installationUrl,\n isConnected,\n isConnecting,\n onConnect,\n repositories,\n troubleshootUrl,\n }}\n />\n </div>\n);\n\nexport default Repositories;\n","import classNames from \"classnames\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Spinner } from \"neetoui\";\n\nimport { useFetchGithubRepositories } from \"hooks/reactQuery/useGithubAccountsApi\";\nimport Accounts from \"src/components/commons/Accounts\";\nimport Repositories from \"src/components/commons/Repositories\";\n\nconst NeetoGithubNanoContainer = ({\n isPaneLoading = false,\n shouldFetchRepositories = true,\n paneAccounts = [],\n installationUrl,\n isConnected,\n isConnecting = false,\n onConnect,\n paneRepositories = [],\n troubleshootUrl,\n isPane = false,\n}) => {\n const {\n data: {\n repositories: containerRepositories = [],\n accounts: containerAccounts = [],\n } = {},\n isLoading: isContainerLoading,\n } = useFetchGithubRepositories({\n isConnected: shouldFetchRepositories && globalProps.isGithubIntegrated,\n });\n\n const repositories = shouldFetchRepositories\n ? containerRepositories\n : paneRepositories;\n const accounts = shouldFetchRepositories ? containerAccounts : paneAccounts;\n\n const isLoading = shouldFetchRepositories\n ? isContainerLoading\n : isPaneLoading;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"flex min-h-0 w-full flex-grow flex-col\", {\n \"flex-col\": isPane,\n \"gap-3 md:flex-row md:gap-6\": !isPane,\n })}\n >\n <Accounts\n {...{ accounts, installationUrl, isConnected, isPane, onConnect }}\n />\n <Repositories\n {...{\n installationUrl,\n isConnected,\n isConnecting,\n isPane,\n onConnect,\n repositories,\n troubleshootUrl,\n }}\n />\n </div>\n );\n};\n\nexport default NeetoGithubNanoContainer;\n"],"names":["GITHUB_INTEGRATIONS_BASE_API_URL","integrator_id","globalProps","_globalProps$organiza","organization","id","integrator_type","GITHUB_INTEGRATOR_PARAMS","integratorId","integratorType","baseUrl","concat","githubAppUrl","repositories","axios","get","githubAppInstallationId","params","githubAccountsApi","QUERY_KEYS","GITHUB_REPOSITORIES_LIST","STALE_TIME_CONFIG","staleTime","DEFAULT_STALE_TIME","useFetchGithubRepositories","_ref","isConnected","useQuery","queryKey","queryFn","enabled","isNotNil","Header","withT","t","_jsxs","className","children","_jsx","Github","size","Typography","style","Configure","installationUrl","Button","href","icon","Settings","Plus","iconPosition","iconSize","List","accounts","isPane","classnames","map","_ref2","name","avatarUrl","type","profileUrl","count","Building","Avatar","user","imageUrl","label","onClick","window","open","Accounts","onConnect","NoRepositories","troubleshootUrl","Trans","i18nKey","components","troubleshootLink","rel","target","RepositoryTile","isConnecting","repository","_useTranslation","useTranslation","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","fullName","isPrivate","updatedAt","Lock","DateFormat","FromNow","date","disabled","loading","repoType","filteredRepositories","isPresent","classNames","index","_createElement","key","NotConnected","appName","Private","setFilteredRepositories","onSearch","searchTerm","filter","toLowerCase","includes","_Fragment","Search","unlimitedChars","suffix","length","Repositories","NeetoGithubNanoContainer","_ref$isPaneLoading","isPaneLoading","_ref$shouldFetchRepos","shouldFetchRepositories","_ref$paneAccounts","paneAccounts","_ref$isConnecting","_ref$paneRepositories","paneRepositories","_ref$isPane","_useFetchGithubReposi","isGithubIntegrated","_useFetchGithubReposi2","data","_useFetchGithubReposi3","_useFetchGithubReposi4","containerRepositories","_useFetchGithubReposi5","containerAccounts","isContainerLoading","Spinner"],"mappings":"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","x_google_ignoreList":[9]}