openvsx-webui-test 0.20.0-dev.0 → 0.20.0-dev.2

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 (70) hide show
  1. package/lib/components/error-dialog.d.ts.map +1 -1
  2. package/lib/components/error-dialog.js +3 -5
  3. package/lib/components/error-dialog.js.map +1 -1
  4. package/lib/components/generate-token-dialog.d.ts +22 -0
  5. package/lib/components/generate-token-dialog.d.ts.map +1 -0
  6. package/lib/components/generate-token-dialog.js +91 -0
  7. package/lib/components/generate-token-dialog.js.map +1 -0
  8. package/lib/components/rate-limiting/usage-stats/usage-stats-chart.d.ts.map +1 -1
  9. package/lib/components/rate-limiting/usage-stats/usage-stats-chart.js +14 -11
  10. package/lib/components/rate-limiting/usage-stats/usage-stats-chart.js.map +1 -1
  11. package/lib/components/timestamp.d.ts +1 -0
  12. package/lib/components/timestamp.d.ts.map +1 -1
  13. package/lib/components/timestamp.js +2 -1
  14. package/lib/components/timestamp.js.map +1 -1
  15. package/lib/default/menu-content.d.ts +1 -1
  16. package/lib/extension-registry-service.d.ts +7 -1
  17. package/lib/extension-registry-service.d.ts.map +1 -1
  18. package/lib/extension-registry-service.js +41 -0
  19. package/lib/extension-registry-service.js.map +1 -1
  20. package/lib/extension-registry-types.d.ts +6 -0
  21. package/lib/extension-registry-types.d.ts.map +1 -1
  22. package/lib/pages/admin-dashboard/admin-dashboard.d.ts.map +1 -1
  23. package/lib/pages/admin-dashboard/admin-dashboard.js +17 -27
  24. package/lib/pages/admin-dashboard/admin-dashboard.js.map +1 -1
  25. package/lib/pages/admin-dashboard/customers/customer-details.d.ts.map +1 -1
  26. package/lib/pages/admin-dashboard/customers/customer-details.js +2 -1
  27. package/lib/pages/admin-dashboard/customers/customer-details.js.map +1 -1
  28. package/lib/pages/admin-dashboard/customers/customer-token-list.d.ts +19 -0
  29. package/lib/pages/admin-dashboard/customers/customer-token-list.d.ts.map +1 -0
  30. package/lib/pages/admin-dashboard/customers/customer-token-list.js +70 -0
  31. package/lib/pages/admin-dashboard/customers/customer-token-list.js.map +1 -0
  32. package/lib/pages/extension-detail/extension-detail.js +1 -1
  33. package/lib/pages/extension-detail/extension-detail.js.map +1 -1
  34. package/lib/pages/user/{generate-token-dialog.d.ts → generate-access-token-dialog.d.ts} +2 -2
  35. package/lib/pages/user/generate-access-token-dialog.d.ts.map +1 -0
  36. package/lib/pages/user/generate-access-token-dialog.js +33 -0
  37. package/lib/pages/user/generate-access-token-dialog.js.map +1 -0
  38. package/lib/pages/user/user-settings-profile.d.ts.map +1 -1
  39. package/lib/pages/user/user-settings-profile.js +1 -1
  40. package/lib/pages/user/user-settings-profile.js.map +1 -1
  41. package/lib/pages/user/user-settings-tokens.js +4 -4
  42. package/lib/pages/user/user-settings-tokens.js.map +1 -1
  43. package/lib/utils.d.ts +1 -1
  44. package/lib/utils.d.ts.map +1 -1
  45. package/lib/utils.js +10 -5
  46. package/lib/utils.js.map +1 -1
  47. package/package.json +9 -9
  48. package/src/components/error-dialog.tsx +3 -5
  49. package/src/components/generate-token-dialog.tsx +167 -0
  50. package/src/components/rate-limiting/usage-stats/usage-stats-chart.tsx +18 -12
  51. package/src/components/timestamp.tsx +3 -1
  52. package/src/extension-registry-service.ts +49 -1
  53. package/src/extension-registry-types.ts +7 -0
  54. package/src/pages/admin-dashboard/admin-dashboard.tsx +17 -27
  55. package/src/pages/admin-dashboard/customers/customer-details.tsx +4 -0
  56. package/src/pages/admin-dashboard/customers/customer-token-list.tsx +135 -0
  57. package/src/pages/extension-detail/extension-detail.tsx +1 -1
  58. package/src/pages/user/generate-access-token-dialog.tsx +49 -0
  59. package/src/pages/user/user-settings-profile.tsx +1 -1
  60. package/src/pages/user/user-settings-tokens.tsx +4 -4
  61. package/src/utils.ts +9 -5
  62. package/lib/components/copy-to-clipboard.d.ts +0 -21
  63. package/lib/components/copy-to-clipboard.d.ts.map +0 -1
  64. package/lib/components/copy-to-clipboard.js +0 -25
  65. package/lib/components/copy-to-clipboard.js.map +0 -1
  66. package/lib/pages/user/generate-token-dialog.d.ts.map +0 -1
  67. package/lib/pages/user/generate-token-dialog.js +0 -79
  68. package/lib/pages/user/generate-token-dialog.js.map +0 -1
  69. package/src/components/copy-to-clipboard.tsx +0 -50
  70. package/src/pages/user/generate-token-dialog.tsx +0 -157
@@ -1,50 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2020 TypeFox and others
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- ********************************************************************************/
10
-
11
- import { FunctionComponent, ReactElement, useState } from 'react';
12
- import copy from 'clipboard-copy';
13
- import { Tooltip, TooltipProps } from '@mui/material';
14
-
15
- export const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = props => {
16
- const [showTooltip, setTooltip] = useState<boolean>(false);
17
-
18
- const handleOnTooltipClose = () => {
19
- setTooltip(false);
20
- };
21
-
22
- const onCopy = (content: any) => {
23
- copy(content);
24
- setTooltip(true);
25
- };
26
-
27
- return (
28
- <Tooltip
29
- open={showTooltip}
30
- title={'Copied to clipboard!'}
31
- leaveDelay={1500}
32
- onClose={handleOnTooltipClose}
33
- disableHoverListener
34
- {...props.tooltipProps ?? {}}
35
- >
36
- {
37
- props.children({ copy: onCopy }) as ReactElement<any>
38
- }
39
- </Tooltip>
40
- );
41
- };
42
-
43
- interface ChildProps {
44
- copy: (content: any) => void;
45
- }
46
-
47
- export interface CopyToClipboardProps {
48
- tooltipProps?: Partial<TooltipProps>;
49
- children: (props: ChildProps) => ReactElement<any>;
50
- }
@@ -1,157 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (c) 2019 TypeFox and others
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- ********************************************************************************/
10
-
11
- import { ChangeEvent, FunctionComponent, useContext, useEffect, useState, useRef } from 'react';
12
- import { Button, Dialog, DialogTitle, DialogContent, DialogContentText, Box, TextField, DialogActions, Typography } from '@mui/material';
13
- import { ButtonWithProgress } from '../../components/button-with-progress';
14
- import { CopyToClipboard } from '../../components/copy-to-clipboard';
15
- import { PersonalAccessToken, isError } from '../../extension-registry-types';
16
- import { MainContext } from '../../context';
17
-
18
- const TOKEN_DESCRIPTION_SIZE = 255;
19
-
20
- export const GenerateTokenDialog: FunctionComponent<GenerateTokenDialogProps> = props => {
21
- const [open, setOpen] = useState<boolean>(false);
22
- const [posted, setPosted] = useState<boolean>(false);
23
- const [description, setDescription] = useState<string>('');
24
- const [descriptionError, setDescriptionError] = useState<string>();
25
- const [token, setToken] = useState<PersonalAccessToken>();
26
-
27
- const context = useContext(MainContext);
28
- const abortController = useRef<AbortController>(new AbortController());
29
-
30
- useEffect(() => {
31
- document.addEventListener('keydown', handleEnter);
32
- return () => {
33
- abortController.current.abort();
34
- document.removeEventListener('keydown', handleEnter);
35
- };
36
- }, []);
37
-
38
- const handleOpenDialog = () => {
39
- setOpen(true);
40
- setPosted(false);
41
- setDescription('');
42
- setToken(undefined);
43
- };
44
-
45
- const handleClose = () => setOpen(false);
46
-
47
- const handleDescriptionChange = (event: ChangeEvent<HTMLInputElement>) => {
48
- const description = event.target.value;
49
- let descriptionError: string | undefined;
50
- if (description.length > TOKEN_DESCRIPTION_SIZE) {
51
- descriptionError = `The description must not be longer than ${TOKEN_DESCRIPTION_SIZE} characters.`;
52
- }
53
-
54
- setDescription(description);
55
- setDescriptionError(descriptionError);
56
- };
57
-
58
- const handleGenerate = async () => {
59
- if (!context.user) {
60
- return;
61
- }
62
- setPosted(true);
63
- try {
64
- const token = await context.service.createAccessToken(abortController.current, context.user, description);
65
- if (isError(token)) {
66
- throw token;
67
- }
68
- setToken(token);
69
- props.handleTokenGenerated();
70
- } catch (err) {
71
- context.handleError(err);
72
- }
73
- };
74
-
75
- const handleEnter = (e: KeyboardEvent) => {
76
- if (e.code === 'Enter' && open && !token) {
77
- handleGenerate();
78
- }
79
- };
80
-
81
- return <>
82
- <Button variant='outlined' onClick={handleOpenDialog}>Generate new token</Button>
83
- <Dialog open={open} onClose={handleClose}>
84
- <DialogTitle>Generate new token</DialogTitle>
85
- <DialogContent>
86
- <DialogContentText>
87
- Describe where you will use this token.
88
- </DialogContentText>
89
- <Box my={2}>
90
- <TextField
91
- disabled={Boolean(token)}
92
- fullWidth
93
- label='Token Description'
94
- error={Boolean(descriptionError)}
95
- helperText={descriptionError}
96
- onChange={handleDescriptionChange} />
97
- </Box>
98
- <TextField
99
- disabled={!token}
100
- margin='dense'
101
- label='Generated Token...'
102
- fullWidth
103
- multiline
104
- variant='outlined'
105
- rows={4}
106
- value={token ? token.value : ''}
107
- />
108
- {
109
- token ?
110
- <Box>
111
- <Typography sx={{ color: 'red', fontWeight: 'bold' }}>
112
- Copy and paste this token to a safe place. It will not be displayed again.
113
- </Typography>
114
- </Box> : null
115
- }
116
- </DialogContent>
117
- <DialogActions>
118
- {
119
- token ?
120
- <CopyToClipboard tooltipProps={{ placement: 'left' }}>
121
- {({ copy }) => (
122
- <Button
123
- autoFocus
124
- variant='contained'
125
- color='secondary'
126
- onClick={() => {
127
- copy(token!.value);
128
- setTimeout(handleClose, 700);
129
- }}
130
- >
131
- Copy
132
- </Button>
133
- )}
134
- </CopyToClipboard> : null
135
- }
136
- <Button onClick={handleClose} color='secondary'>
137
- {token ? 'Close' : 'Cancel'}
138
- </Button>
139
- {
140
- !token ?
141
- <ButtonWithProgress
142
- autoFocus
143
- sx={{ ml: 1 }}
144
- error={Boolean(descriptionError)}
145
- working={posted}
146
- onClick={handleGenerate} >
147
- Generate Token
148
- </ButtonWithProgress> : null
149
- }
150
- </DialogActions>
151
- </Dialog>
152
- </>;
153
- };
154
-
155
- export interface GenerateTokenDialogProps {
156
- handleTokenGenerated: () => void;
157
- }