@opengeoweb/shared 15.0.0 → 15.1.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.
package/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { Box, Typography, useTheme, Tooltip, IconButton, Menu, ListSubheader, MenuItem, Grid, ListItemText, ListItemIcon, DialogTitle, Button, Dialog, DialogContent, DialogActions, Paper, CircularProgress, Alert, AlertTitle, Drawer, Link, Avatar as Avatar$1, ClickAwayListener, MenuList, RadioGroup, FormControlLabel, Radio, List, ListItem, Tabs, Tab, Backdrop, Switch, Slider, ToggleButton, styled, Select, Accordion, AccordionSummary, AccordionDetails, FormLabel, TextField, InputAdornment, Chip, Stack, debounce as debounce$1, ListItemButton, Checkbox } from '@mui/material';
2
+ import { Box, Typography, useTheme, Tooltip, IconButton, Menu, ListSubheader, MenuItem, Grid, ListItemText, ListItemIcon, DialogTitle, Button, Dialog, DialogContent, DialogActions, Paper, CircularProgress, Alert, AlertTitle, Drawer, Link, Avatar as Avatar$1, ClickAwayListener, MenuList, RadioGroup, FormControlLabel, Radio, List, ListItem, Tabs, Tab, Backdrop, Slider, ToggleButton, styled, Select, Accordion, AccordionSummary, AccordionDetails, FormLabel, Switch, TextField, InputAdornment, Chip, Stack, debounce as debounce$1, ListItemButton, Checkbox } from '@mui/material';
3
3
  import 'i18next';
4
4
  import { initReactI18next, useTranslation } from 'react-i18next';
5
5
  import React, { useRef, useEffect, useState, Component } from 'react';
@@ -7,7 +7,6 @@ import Draggable from 'react-draggable';
7
7
  import { Resizable } from 're-resizable';
8
8
  import { Resize, BORDER_RADIUS, Options, Close, ChevronLeft, Exclamation, Success, Info, ChevronRight, GeoWebLogo, HamburgerMenu, Admin, useThemeContext, ThemeTypes, ArrowLeft, ArrowRight, KeyOption, KeyCommand, ArrowUp, ArrowDown, ChevronDown, Search, Clear, Cached, Filter as Filter$1 } from '@opengeoweb/theme';
9
9
  import { throttle, merge, escapeRegExp, debounce } from 'lodash';
10
- import { addIntegration } from '@sentry/react';
11
10
  import { parseISO, parse, format, isEqual, add as add$1, sub as sub$1, differenceInYears as differenceInYears$1, differenceInMonths as differenceInMonths$1, differenceInDays as differenceInDays$1, differenceInMinutes as differenceInMinutes$1, differenceInHours as differenceInHours$1, differenceInSeconds as differenceInSeconds$1, roundToNearestMinutes as roundToNearestMinutes$1, isBefore as isBefore$1, isAfter as isAfter$1, isValid as isValid$1, getUnixTime, fromUnixTime, set as set$1, getHours as getHours$1, startOfDay, addMinutes, addHours, setSeconds as setSeconds$1, getDay, getDayOfYear, getMonth, getWeek, getYear, isWithinInterval } from 'date-fns';
12
11
  import { fi as fi$1, nl as nl$1, nb, enGB } from 'date-fns/locale';
13
12
 
@@ -58,15 +57,6 @@ var en = {
58
57
  "shared-shortcut-mouse-click": "+ Mouse click",
59
58
  "shared-shortcut-split-button": "click split window button",
60
59
  "shared-shortcut-copy-view-preset-content-split-window": "Copy over viewpreset content when splitting window",
61
- "shared-sentry-recording": "Sentry Recording",
62
- "shared-sentry-information": "For monitoring performance and errors, GeoWeb is logging usage information. In this process, no sensitive user information will leave the browser.",
63
- "shared-sentry-enable-message": "By enabling recording I understand that the recording related data will be send to Sentry´s servers for processing.",
64
- "shared-sentry-disable": "Disable HTML recording",
65
- "shared-sentry-enable": "Enable HTML recording",
66
- "shared-sentry-enable-both": "Disable HTML + Canvas recording",
67
- "shared-sentry-disable-both": "Enable HTML + Canvas recording",
68
- "shared-sentry-cors-wait": "Disabled untill with and without CORS headers fetching mechanism has been implemented",
69
- "shared-sentry-disclaimer": "I understand that while using canvas recording, adding a layer without correct CORS headers will cause error and make the recording to fail. A new recording without the canvas or the layer can be made after reloading the application.",
70
60
  "shared-clear": "Clear",
71
61
  "shared-light": "Light",
72
62
  "shared-dark": "Dark",
@@ -133,15 +123,6 @@ var fi = {
133
123
  "shared-shortcut-mouse-click": "+ hiiren napsautus",
134
124
  "shared-shortcut-split-button": "napsauta Jaa ikkuna -painiketta",
135
125
  "shared-shortcut-copy-view-preset-content-split-window": "Kopioi näkymän sisältö, kun ikkuna jaetaan kahtia",
136
- "shared-sentry-recording": "Sentry Tallennus",
137
- "shared-sentry-information": "Geoweb tallentaa tietoja sovelluksen käytöstä monitoroidakseen suorituskykyä, sekä virhetilanteita. Arkaluonteista dataa ei kerätä tai lähetetä.",
138
- "shared-sentry-enable-message": "Ymmärrän, että laittamalla tallennuksen päälle tallennukseen liittyvää dataa lähetetään Sentryn palvelimille.",
139
- "shared-sentry-disable": "Laita HTML tallennus pois päältä",
140
- "shared-sentry-enable": "Laita HTML tallennus päälle",
141
- "shared-sentry-enable-both": "Laita HTML + Canvas tallennus päälle",
142
- "shared-sentry-disable-both": "Laita HTML + Canvas tallennus pois päältä",
143
- "shared-sentry-cors-wait": "Ominaisuus kytketty pois päältä, kunnes sovelluksen latausprosessit tukevat CORS headerien puuttumista.",
144
- "shared-sentry-disclaimer": "Ymmärrän, että käyttäessäni Canvas-tallennusta ja lisätessäni karttatason, jonka CORS headerit eivät ola kunnosa, sovelluksessa tapahtuu virhe, joka johtaa tallennnuksen epäonnistumiseen. Uuden tallennuksen voi tehdä ilman Canvaksen tallentamista sen jälkeen, kun sovellus on ladattu uudelleen.",
145
126
  "shared-clear": "Tyhjennä",
146
127
  "shared-light": "Vaalea",
147
128
  "shared-dark": "Tumma",
@@ -206,15 +187,6 @@ var no = {
206
187
  "shared-shortcut-mouse-click": "+ museklikk",
207
188
  "shared-shortcut-copy-view-preset-content-split-window": "kopier over viewpreset innhold når vindu deles",
208
189
  "shared-shortcut-split-button": "trykk del vindu knapp",
209
- "shared-sentry-recording": "Skjermopptak av Sentry",
210
- "shared-sentry-information": "GeoWeb tar opp brukerinformasjon for å monitorere ytelse og feilmeldinger. Underveis vil ingen sensitiv brukerinformasjon forlate nettleser.",
211
- "shared-sentry-enable-message": "Ved å bruke skjermopptak forstår jeg at opptaksdata vil bli sendt til Sentry for analysering",
212
- "shared-sentry-disable": "Skru av HTML-opptak",
213
- "shared-sentry-enable": "Skru på HTML-opptak",
214
- "shared-sentry-enable-both": "Skru av HTML + lerret-opptak",
215
- "shared-sentry-disable-both": "Skru på HTML + lerret-opptak",
216
- "shared-sentry-cors-wait": "Avskrudd inntil CORS-relaterte headere er implementert",
217
- "shared-sentry-disclaimer": "Jeg forstår at ved å bruke lerretopptak vil opptaket feile dersom jeg legger til et lag uten riktig CORS-headere. Ved å laste inn applikasjonen på nytt kan man starte nytt opptak uten lerret eller lag.",
218
190
  "shared-clear": "Tøm",
219
191
  "shared-light": "Lys",
220
192
  "shared-dark": "Mørk",
@@ -279,15 +251,6 @@ var nl = {
279
251
  "shared-shortcut-open-location-search": "Open locatie zoeken",
280
252
  "shared-shortcut-zoom-to-location": "Zoom kaart naar locatie",
281
253
  "shared-shortcut-mouse-click": "+ Muisklik",
282
- "shared-sentry-recording": "Sentry Opname",
283
- "shared-sentry-information": "Om performance en fouten te monitoren, registreert GeoWeb gebruiksinformatie. Tijdens dit proces verlaat geen enkele gevoelige gebruikersinformatie de browser.",
284
- "shared-sentry-enable-message": "Door opname te starten, ga ik akkoord dat de opnamegerelateerde gegevens ter verwerking naar de servers van Sentry worden verzonden.",
285
- "shared-sentry-disable": "HTML opname stoppen",
286
- "shared-sentry-enable": "HTML opname starten",
287
- "shared-sentry-enable-both": "HTML + Canvas opname stoppen",
288
- "shared-sentry-disable-both": "HTML + Canvas opname starten",
289
- "shared-sentry-cors-wait": "Uitgeschakeld totdat het fetching mechanisme met en zonder CORS-headers is geïmplementeerd",
290
- "shared-sentry-disclaimer": "Ik begrijp dat bij het gebruik van canvasopnamen het toevoegen van een laag zonder de juiste CORS-headers fouten zal veroorzaken en ervoor zal zorgen dat de opname mislukt. Een nieuwe opname zonder het canvas of de laag kan worden gemaakt na het opnieuw laden van de applicatie.",
291
254
  "shared-clear": "Wissen",
292
255
  "shared-light": "Licht",
293
256
  "shared-dark": "Donker",
@@ -3814,222 +3777,6 @@ var UserMenuItemCheatSheet = function UserMenuItemCheatSheet() {
3814
3777
  });
3815
3778
  };
3816
3779
 
3817
- var UserMenuItemSentryRecording = function UserMenuItemSentryRecording(_ref) {
3818
- var recordButtonEnabled = _ref.recordButtonEnabled,
3819
- setRecordButtonEnabled = _ref.setRecordButtonEnabled;
3820
- var _React$useState = React.useState(false),
3821
- open = _React$useState[0],
3822
- setOpen = _React$useState[1];
3823
- var _React$useState2 = React.useState(false),
3824
- canvasIntegrationEnabled = _React$useState2[0],
3825
- setCanvasIntegrationEnabled = _React$useState2[1];
3826
- var _React$useState3 = React.useState(false),
3827
- htmlRecordingEnabled = _React$useState3[0],
3828
- setHTMLRecordingEnabled = _React$useState3[1];
3829
- var _useTranslation = useTranslation(SHARED_NAMESPACE),
3830
- t = _useTranslation.t;
3831
- var onClose = function onClose() {
3832
- setOpen(false);
3833
- };
3834
- var onOpen = function onOpen() {
3835
- setOpen(true);
3836
- };
3837
- var enableHTMLRecording = /*#__PURE__*/function () {
3838
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
3839
- var _yield$import, replayIntegration;
3840
- return _regeneratorRuntime().wrap(function _callee$(_context) {
3841
- while (1) switch (_context.prev = _context.next) {
3842
- case 0:
3843
- if (!recordButtonEnabled) {
3844
- _context.next = 2;
3845
- break;
3846
- }
3847
- return _context.abrupt("return");
3848
- case 2:
3849
- if (!canvasIntegrationEnabled) {
3850
- _context.next = 4;
3851
- break;
3852
- }
3853
- return _context.abrupt("return");
3854
- case 4:
3855
- _context.prev = 4;
3856
- _context.next = 7;
3857
- return import('@sentry/react');
3858
- case 7:
3859
- _yield$import = _context.sent;
3860
- replayIntegration = _yield$import.replayIntegration;
3861
- addIntegration(replayIntegration({
3862
- maskAllText: false,
3863
- blockAllMedia: false
3864
- }));
3865
- setRecordButtonEnabled == null || setRecordButtonEnabled(!recordButtonEnabled);
3866
- setHTMLRecordingEnabled(true);
3867
- _context.next = 17;
3868
- break;
3869
- case 14:
3870
- _context.prev = 14;
3871
- _context.t0 = _context["catch"](4);
3872
- // eslint-disable-next-line no-console
3873
- console.log(_context.t0);
3874
- case 17:
3875
- case "end":
3876
- return _context.stop();
3877
- }
3878
- }, _callee, null, [[4, 14]]);
3879
- }));
3880
- return function enableHTMLRecording() {
3881
- return _ref2.apply(this, arguments);
3882
- };
3883
- }();
3884
- var enableHTMLAndCanvasRecording = /*#__PURE__*/function () {
3885
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
3886
- var _yield$import2, replayIntegration, replayCanvasIntegration;
3887
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
3888
- while (1) switch (_context2.prev = _context2.next) {
3889
- case 0:
3890
- if (!recordButtonEnabled) {
3891
- _context2.next = 2;
3892
- break;
3893
- }
3894
- return _context2.abrupt("return");
3895
- case 2:
3896
- _context2.prev = 2;
3897
- _context2.next = 5;
3898
- return import('@sentry/react');
3899
- case 5:
3900
- _yield$import2 = _context2.sent;
3901
- replayIntegration = _yield$import2.replayIntegration;
3902
- replayCanvasIntegration = _yield$import2.replayCanvasIntegration;
3903
- addIntegration(replayIntegration({
3904
- maskAllText: false,
3905
- blockAllMedia: false
3906
- }));
3907
- addIntegration(replayCanvasIntegration());
3908
- setCanvasIntegrationEnabled(!canvasIntegrationEnabled);
3909
- setRecordButtonEnabled == null || setRecordButtonEnabled(!recordButtonEnabled);
3910
- _context2.next = 17;
3911
- break;
3912
- case 14:
3913
- _context2.prev = 14;
3914
- _context2.t0 = _context2["catch"](2);
3915
- // eslint-disable-next-line no-console
3916
- console.log(_context2.t0);
3917
- case 17:
3918
- case "end":
3919
- return _context2.stop();
3920
- }
3921
- }, _callee2, null, [[2, 14]]);
3922
- }));
3923
- return function enableHTMLAndCanvasRecording() {
3924
- return _ref3.apply(this, arguments);
3925
- };
3926
- }();
3927
- return jsxs(ErrorBoundary, {
3928
- children: [jsx(MenuItem, {
3929
- "data-testid": "sentryRecording-btn",
3930
- divider: true,
3931
- onClick: onOpen,
3932
- children: jsx(Grid, {
3933
- container: true,
3934
- children: jsx(Grid, {
3935
- children: t('shared-sentry-recording')
3936
- })
3937
- })
3938
- }), jsx(Backdrop, {
3939
- "data-testid": "sentryRecording-content",
3940
- open: open,
3941
- sx: {
3942
- zIndex: 1
3943
- },
3944
- children: jsx(DraggableComponent, {
3945
- bounds: "parent",
3946
- isOpen: true,
3947
- minHeight: 300,
3948
- minWidth: 500,
3949
- onClose: onClose,
3950
- startSize: {
3951
- width: 700
3952
- },
3953
- title: t('shared-sentry-recording'),
3954
- children: jsxs(Grid, {
3955
- container: true,
3956
- spacing: 4,
3957
- sx: {
3958
- paddingLeft: '70px',
3959
- paddingRight: '70px'
3960
- },
3961
- children: [jsx(Grid, {
3962
- container: true,
3963
- justifyContent: "center",
3964
- sx: {
3965
- textAlign: 'center'
3966
- },
3967
- children: jsx(Typography, {
3968
- children: t('shared-sentry-information')
3969
- })
3970
- }), jsx(Grid, {
3971
- container: true,
3972
- justifyContent: "center",
3973
- sx: {
3974
- textAlign: 'center'
3975
- },
3976
- children: jsx(Typography, {
3977
- children: t('shared-sentry-enable-message')
3978
- })
3979
- }), jsxs(Grid, {
3980
- alignItems: "center",
3981
- container: true,
3982
- direction: "column",
3983
- children: [jsx(Switch, {
3984
- checked: recordButtonEnabled ? !canvasIntegrationEnabled : undefined,
3985
- disabled: htmlRecordingEnabled,
3986
- onChange: enableHTMLRecording
3987
- }), recordButtonEnabled && !canvasIntegrationEnabled ? jsxs(Typography, {
3988
- children: [" ", t('shared-sentry-disable')]
3989
- }) : jsxs(Typography, {
3990
- children: [" ", t('shared-sentry-enable')]
3991
- })]
3992
- }), jsxs(Grid, {
3993
- alignItems: "center",
3994
- container: true,
3995
- direction: "column",
3996
- children: [jsx(Switch, {
3997
- checked: canvasIntegrationEnabled,
3998
- disabled: true,
3999
- onChange: enableHTMLAndCanvasRecording
4000
- }), canvasIntegrationEnabled ? jsx(Typography, {
4001
- children: t('shared-sentry-disable-both')
4002
- }) : jsxs(Fragment, {
4003
- children: [jsx(Typography, {
4004
- sx: {
4005
- color: 'gray'
4006
- },
4007
- children: t('shared-sentry-enable-both')
4008
- }), jsxs(Typography, {
4009
- sx: {
4010
- color: 'gray'
4011
- },
4012
- textAlign: "center",
4013
- children: ["(", t('shared-sentry-cors-wait'), ")"]
4014
- })]
4015
- })]
4016
- }), jsx(Grid, {
4017
- container: true,
4018
- justifyContent: "center",
4019
- children: jsx(Typography, {
4020
- sx: {
4021
- paddingTop: '20px',
4022
- textAlign: 'center'
4023
- },
4024
- children: t('shared-sentry-disclaimer')
4025
- })
4026
- })]
4027
- })
4028
- })
4029
- })]
4030
- });
4031
- };
4032
-
4033
3780
  /* *
4034
3781
  * Licensed under the Apache License, Version 2.0 (the "License");
4035
3782
  * you may not use this file except in compliance with the License.
@@ -6606,4 +6353,4 @@ var SystemScope = {
6606
6353
  system: 'system'
6607
6354
  };
6608
6355
 
6609
- export { AlertBanner, AlertIcon, AppHeader, AppLayout, Avatar, CanvasComponent, ConfirmationButtons, ConfirmationDialog, ConfirmationServiceProvider, CustomAccordion, CustomDialog, CustomDialogHeader, CustomIconButton, CustomSlider, CustomToggleButton, CustomTooltip, DEBOUNCE_TIMEOUT, DEFAULT_ERROR_MESSAGE, DEFAULT_FILTER_HEIGHT, DraggableComponent$1 as Draggable, ErrorBoundary, Filter, FilterChip, FilterOption, LastUpdateTime, PROJECTION, ResizeComponent as Resizable, SHARED_NAMESPACE, SearchField$1 as SearchField, SearchFieldButton, SearchHighlight, SessionStorageKey, StatusTag, StorybookDocsWrapper, StyledSelect, SwitchButton, SystemScope, ToggleMenu, ToolContainer, DraggableComponent as ToolContainerDraggable, ToolFooter, ToolHeader, TooltipSelect, UserMenu, UserMenuItemCheatSheet, UserMenuItemSentryRecording, MenuItemTheme as UserMenuItemTheme, adjustPosition, calculateDialogSizeAndPosition, calculateStartSize, index as dateUtils, defaultDelay, getAxiosErrorMessage, getAxiosWarningMessage, getErrorMessage, getInitials, getLastUpdateTitle, getPosition, getWarningMessage, isAxiosAuthError, isAxiosError, loadAllTranslations, pollingIntervalTimeout, renderCounter, safelyInitI18nForTestsAndStories, sessionStorageProvider, sharedTranslations, showPrompt, sliderHeaderStyle, tooltipContainerStyles, useConfirmationDialog, useControlledTooltip, useDebounce, useDialogActions, useIsMounted, useMakeSureContainerStaysInsideWindow, usePoller, usePreventBrowserClose, usePrevious, useResizeObserver, useScrollingInIsolation, useUserMenu, useWheelStopPropagation };
6356
+ export { AlertBanner, AlertIcon, AppHeader, AppLayout, Avatar, CanvasComponent, ConfirmationButtons, ConfirmationDialog, ConfirmationServiceProvider, CustomAccordion, CustomDialog, CustomDialogHeader, CustomIconButton, CustomSlider, CustomToggleButton, CustomTooltip, DEBOUNCE_TIMEOUT, DEFAULT_ERROR_MESSAGE, DEFAULT_FILTER_HEIGHT, DraggableComponent$1 as Draggable, ErrorBoundary, Filter, FilterChip, FilterOption, LastUpdateTime, PROJECTION, ResizeComponent as Resizable, SHARED_NAMESPACE, SearchField$1 as SearchField, SearchFieldButton, SearchHighlight, SessionStorageKey, StatusTag, StorybookDocsWrapper, StyledSelect, SwitchButton, SystemScope, ToggleMenu, ToolContainer, DraggableComponent as ToolContainerDraggable, ToolFooter, ToolHeader, TooltipSelect, UserMenu, UserMenuItemCheatSheet, MenuItemTheme as UserMenuItemTheme, adjustPosition, calculateDialogSizeAndPosition, calculateStartSize, index as dateUtils, defaultDelay, getAxiosErrorMessage, getAxiosWarningMessage, getErrorMessage, getInitials, getLastUpdateTitle, getPosition, getWarningMessage, isAxiosAuthError, isAxiosError, loadAllTranslations, pollingIntervalTimeout, renderCounter, safelyInitI18nForTestsAndStories, sessionStorageProvider, sharedTranslations, showPrompt, sliderHeaderStyle, tooltipContainerStyles, useConfirmationDialog, useControlledTooltip, useDebounce, useDialogActions, useIsMounted, useMakeSureContainerStaysInsideWindow, usePoller, usePreventBrowserClose, usePrevious, useResizeObserver, useScrollingInIsolation, useUserMenu, useWheelStopPropagation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/shared",
3
- "version": "15.0.0",
3
+ "version": "15.1.0",
4
4
  "description": "GeoWeb shared library with shared components and utils for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,7 +8,7 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/theme": "15.0.0",
11
+ "@opengeoweb/theme": "15.1.0",
12
12
  "react-draggable": "^4.4.6",
13
13
  "re-resizable": "^6.9.11",
14
14
  "lodash": "^4.17.21",
@@ -16,7 +16,6 @@
16
16
  "date-fns": "^4.1.0",
17
17
  "react-i18next": "^15.1.1",
18
18
  "i18next": "^25.0.1",
19
- "@sentry/react": "^8.34.0",
20
19
  "@mui/material": "^7.0.1"
21
20
  },
22
21
  "peerDependencies": {
@@ -1,6 +1,5 @@
1
1
  export { default as UserMenu } from './UserMenu';
2
2
  export { default as UserMenuItemTheme } from './UserMenuItemTheme';
3
3
  export { default as UserMenuItemCheatSheet } from './UserMenuItemCheatSheet';
4
- export { default as UserMenuItemSentryRecording } from './UserMenuSentryRecording';
5
4
  export { useUserMenu } from './useUserMenu';
6
5
  export { getInitials } from './utils';
@@ -53,6 +53,15 @@ export interface SoundingsCollection {
53
53
  description: string;
54
54
  parameterMappings?: Record<string, string>;
55
55
  }
56
+ export type Coordinates = [number, number];
57
+ export interface SourceSelection {
58
+ url?: string;
59
+ instanceId?: string;
60
+ isChecked?: boolean;
61
+ verticalRange?: string;
62
+ parameterMappings?: Record<string, string>;
63
+ name?: string;
64
+ }
56
65
  export interface TimeSeriesService {
57
66
  id: string;
58
67
  description: string;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface UserMenuSentryRecordingProps {
3
- recordButtonEnabled?: boolean;
4
- setRecordButtonEnabled?: React.Dispatch<React.SetStateAction<boolean>>;
5
- }
6
- declare const UserMenuItemSentryRecording: React.FC<UserMenuSentryRecordingProps>;
7
- export default UserMenuItemSentryRecording;