Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@linode/manager": Tech Stories
---

Clean up `src/utilities` exports ([#9783](https://github.com/linode/manager/pull/9783))
23 changes: 1 addition & 22 deletions packages/manager/src/App.test.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { APIError } from '@linode/api-v4/lib/types';
import { shallow } from 'enzyme';
import * as React from 'react';
import { Provider } from 'react-redux';
import { StaticRouter } from 'react-router-dom';

import { App, hasOauthError } from './App';
import { App } from './App';
import { LinodeThemeWrapper } from './LinodeThemeWrapper';
import { queryClientFactory } from './queries/base';
import { storeFactory } from './store';
Expand All @@ -23,23 +22,3 @@ it('renders without crashing.', () => {
);
expect(component.find('App')).toHaveLength(1);
});

const errors: (APIError[] | Error)[] = [
[
{
reason: 'invalid OAuTh token',
},
],
new Error('hello world'),
[
{
reason: 'Invalid Something else',
},
],
new Error('hello world again'),
];

it('isOAuthError returns true for errors that have oauth errors in them', () => {
expect(hasOauthError(errors[0], errors[1])).toBeTruthy();
expect(hasOauthError(errors[2], errors[3])).toBeFalsy();
});
18 changes: 1 addition & 17 deletions packages/manager/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { APIError } from '@linode/api-v4/lib/types';
import '@reach/tabs/styles.css';
import { ErrorBoundary } from '@sentry/react';
import { useSnackbar } from 'notistack';
import { pathOr } from 'ramda';
import * as React from 'react';
import { useSelector } from 'react-redux';
import { useHistory } from 'react-router-dom';
Expand Down Expand Up @@ -41,6 +39,7 @@ import { tokenEventHandler } from './queries/tokens';
import { volumeEventsHandler } from './queries/volumes';
import { ApplicationState } from './store';
import { getNextThemeValue } from './utilities/theme';
import { isOSMac } from './utilities/userAgent';

// Ensure component's display name is 'App'
export const App = () => <BaseApp />;
Expand Down Expand Up @@ -292,18 +291,3 @@ const BaseApp = withDocumentTitleProvider(
})
)
);

export const hasOauthError = (...args: (APIError[] | Error | undefined)[]) => {
return args.some((eachError) => {
const cleanedError: JSX.Element | string = pathOr(
'',
[0, 'reason'],
eachError
);
return typeof cleanedError !== 'string'
? false
: cleanedError.toLowerCase().includes('oauth');
});
};

export const isOSMac = navigator.userAgent.includes('Mac');
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved this to src/utilities/userAgent.ts

4 changes: 2 additions & 2 deletions packages/manager/src/MainContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { makeStyles } from 'tss-react/mui';

import Logo from 'src/assets/logo/akamai-logo.svg';
import { Box } from 'src/components/Box';
import MainContentBanner from 'src/components/MainContentBanner';
import { MainContentBanner } from 'src/components/MainContentBanner';
import { MaintenanceScreen } from 'src/components/MaintenanceScreen';
import { NotFound } from 'src/components/NotFound';
import { PreferenceToggle } from 'src/components/PreferenceToggle/PreferenceToggle';
Expand All @@ -17,7 +17,7 @@ import { SuspenseLoader } from 'src/components/SuspenseLoader';
import withGlobalErrors, {
Props as GlobalErrorProps,
} from 'src/containers/globalErrors.container';
import { useDialogContext } from 'src/context';
import { useDialogContext } from 'src/context/useDialogContext';
import { Footer } from 'src/features/Footer/Footer';
import { GlobalNotifications } from 'src/features/GlobalNotifications/GlobalNotifications';
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { Typography } from 'src/components/Typography';
import 'src/formatted-text.css';
import { ThemeName } from 'src/foundations/themes';
import { unsafe_MarkdownIt } from 'src/utilities/markdown';
import { sanitizeHTML } from 'src/utilities/sanitize-html';
import { sanitizeHTML } from 'src/utilities/sanitizeHTML';
import { useColorMode } from 'src/utilities/theme';

hljs.registerLanguage('apache', apache);
Expand Down
4 changes: 2 additions & 2 deletions packages/manager/src/components/ImageSelect/ImageSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import Select, { GroupType, Item } from 'src/components/EnhancedSelect';
import { BaseSelectProps } from 'src/components/EnhancedSelect/Select';
import { _SingleValue } from 'src/components/EnhancedSelect/components/SingleValue';
import { ImageOption } from 'src/components/ImageSelect/ImageOption';
import { Typography } from 'src/components/Typography';
import { Paper } from 'src/components/Paper';
import { Typography } from 'src/components/Typography';
import { MAX_MONTHS_EOL_FILTER } from 'src/constants';
import { useAllImagesQuery } from 'src/queries/images';
import { arePropsEqual } from 'src/utilities/arePropsEqual';
import { getAPIErrorOrDefault } from 'src/utilities/errorUtils';
import getSelectedOptionFromGroupedOptions from 'src/utilities/getSelectedOptionFromGroupedOptions';
import { getSelectedOptionFromGroupedOptions } from 'src/utilities/getSelectedOptionFromGroupedOptions';

import { distroIcons } from './icons';

Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/components/LineGraph/LineGraph.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { TableCell } from 'src/components/TableCell';
import { TableRow } from 'src/components/TableRow';
import { Typography } from 'src/components/Typography';
import { setUpCharts } from 'src/utilities/charts';
import roundTo from 'src/utilities/roundTo';
import { roundTo } from 'src/utilities/roundTo';
import { Metrics } from 'src/utilities/statMetrics';

import AccessibleGraphData from './AccessibleGraphData';
Expand Down
6 changes: 2 additions & 4 deletions packages/manager/src/components/MainContentBanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ interface Props {
url: string;
}

const MainContentBanner = (props: Props) => {
export const MainContentBanner = React.memo((props: Props) => {
const { bannerKey, bannerText, linkText, onClose, url } = props;

const { refetch: refetchPrefrences } = usePreferences();
Expand Down Expand Up @@ -94,6 +94,4 @@ const MainContentBanner = (props: Props) => {
</button>
</Grid>
);
};

export default React.memo(MainContentBanner);
});
2 changes: 1 addition & 1 deletion packages/manager/src/components/PrimaryNav/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import isPathOneOf from 'src/utilities/routing/isPathOneOf';
import { isPathOneOf } from 'src/utilities/routing/isPathOneOf';

export const linkIsActive = (
href: string,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@ import { Typography } from 'src/components/Typography';
import { Paper } from 'src/components/Paper';
import { PromotionalOffer } from 'src/featureFlags';
import { useWindowDimensions } from 'src/hooks/useWindowDimensions';
import {
offSiteURL,
onSiteURL,
} from 'src/utilities/sanitize-html/sanitizeHTML';
import { offSiteURL, onSiteURL } from 'src/utilities/sanitizeHTML';

const useStyles = makeStyles()((theme: Theme) => ({
alignLeft: {
Expand Down
1 change: 0 additions & 1 deletion packages/manager/src/context/index.ts

This file was deleted.

2 changes: 0 additions & 2 deletions packages/manager/src/context/useDialogContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,3 @@ export const useDialogContext = (): DialogContextProps => {
open,
};
};

export default useDialogContext;
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,13 @@ import {
import { useRegionsQuery } from 'src/queries/regions';
import { formatStorageUnits } from 'src/utilities/formatStorageUnits';
import { handleAPIErrors } from 'src/utilities/formikErrorUtils';
import getSelectedOptionFromGroupedOptions from 'src/utilities/getSelectedOptionFromGroupedOptions';
import { getSelectedOptionFromGroupedOptions } from 'src/utilities/getSelectedOptionFromGroupedOptions';
import {
ExtendedIP,
ipFieldPlaceholder,
validateIPs,
} from 'src/utilities/ipUtils';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';

import type { PlanSelectionType } from 'src/features/components/PlansPanel/types';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ import {
extendedIPToString,
stringToExtendedIP,
} from 'src/utilities/ipUtils';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';

import { generateDefaultDomainRecords } from '../domainUtils';

Expand Down
14 changes: 7 additions & 7 deletions packages/manager/src/features/Domains/DomainRecordDrawer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ import { MultipleIPInput } from 'src/components/MultipleIPInput/MultipleIPInput'
import { Notice } from 'src/components/Notice/Notice';
import { TextField } from 'src/components/TextField';
import { getAPIErrorOrDefault } from 'src/utilities/errorUtils';
import getAPIErrorsFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';
import {
ExtendedIP,
extendedIPToString,
stringToExtendedIP,
} from 'src/utilities/ipUtils';
import { maybeCastToNumber } from 'src/utilities/maybeCastToNumber';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';

import {
getInitialIPs,
Expand Down Expand Up @@ -137,8 +137,8 @@ export class DomainRecordDrawer extends React.Component<
'Please create an A/AAAA record for this domain to avoid a Zone File invalidation.';

const otherErrors = [
getAPIErrorsFor({}, this.state.errors)('_unknown'),
getAPIErrorsFor({}, this.state.errors)('none'),
getAPIErrorFor({}, this.state.errors)('_unknown'),
getAPIErrorFor({}, this.state.errors)('none'),
].filter(Boolean);

return (
Expand Down Expand Up @@ -192,7 +192,7 @@ export class DomainRecordDrawer extends React.Component<
).map(stringToExtendedIP);
return (
<MultipleIPInput
error={getAPIErrorsFor(
error={getAPIErrorFor(
DomainRecordDrawer.errorFields,
this.state.errors
)('axfr_ips')}
Expand Down Expand Up @@ -316,7 +316,7 @@ export class DomainRecordDrawer extends React.Component<
NumberField = ({ field, label, ...rest }: NumberFieldProps) => {
return (
<TextField
errorText={getAPIErrorsFor(
errorText={getAPIErrorFor(
DomainRecordDrawer.errorFields,
this.state.errors
)(field)}
Expand Down Expand Up @@ -434,7 +434,7 @@ export class DomainRecordDrawer extends React.Component<
trimmed,
}: AdjustedTextFieldProps) => (
<TextField
errorText={getAPIErrorsFor(
errorText={getAPIErrorFor(
DomainRecordDrawer.errorFields,
this.state.errors
)(field)}
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/features/Domains/DomainRecords.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ import {
getAPIErrorOrDefault,
getErrorStringOrDefault,
} from 'src/utilities/errorUtils';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';
import { storage } from 'src/utilities/storage';
import { truncateEnd } from 'src/utilities/truncate';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Typography } from 'src/components/Typography';
import { SuppliedMaintenanceData } from 'src/featureFlags';
import { queryPresets } from 'src/queries/base';
import { Maintenance, useMaintenanceQuery } from 'src/queries/statusPage';
import { sanitizeHTML } from 'src/utilities/sanitize-html';
import { sanitizeHTML } from 'src/utilities/sanitizeHTML';

interface Props {
suppliedMaintenances: SuppliedMaintenanceData[] | undefined;
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/features/Help/Panels/SearchItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { OptionProps } from 'react-select';
import Arrow from 'src/assets/icons/diagonalArrow.svg';
import { Option } from 'src/components/EnhancedSelect/components/Option';
import { Typography } from 'src/components/Typography';
import { sanitizeHTML } from 'src/utilities/sanitize-html';
import { sanitizeHTML } from 'src/utilities/sanitizeHTML';

interface Props extends OptionProps<any, any> {
data: {
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/features/Help/StatusBanners.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
useIncidentQuery,
} from 'src/queries/statusPage';
import { capitalize } from 'src/utilities/capitalize';
import { sanitizeHTML } from 'src/utilities/sanitize-html';
import { sanitizeHTML } from 'src/utilities/sanitizeHTML';
import { truncateEnd } from 'src/utilities/truncate';

export const StatusBanners = () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { useFlags } from 'src/hooks/useFlags';
import { useCreateImageMutation } from 'src/queries/images';
import { useGrants, useProfile } from 'src/queries/profile';
import { getAPIErrorOrDefault } from 'src/utilities/errorUtils';
import getAPIErrorFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';

const useStyles = makeStyles((theme: Theme) => ({
buttonGroup: {
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/features/Images/ImagesDrawer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import {
useUpdateImageMutation,
} from 'src/queries/images';
import { getAPIErrorOrDefault } from 'src/utilities/errorUtils';
import getAPIErrorFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';

import { useImageAndLinodeGrantCheck } from './utils';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ import { filterCurrentTypes } from 'src/utilities/filterCurrentLinodeTypes';
import { plansNoticesUtils } from 'src/utilities/planNotices';
import { LKE_HA_PRICE } from 'src/utilities/pricing/constants';
import { getDCSpecificPrice } from 'src/utilities/pricing/dynamicPricing';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';

import KubeCheckoutBar from '../KubeCheckoutBar';
import { HAControlPlane } from './HAControlPlane';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { plansNoticesUtils } from 'src/utilities/planNotices';
import { pluralize } from 'src/utilities/pluralize';
import { renderMonthlyPriceToCorrectDecimalPlace } from 'src/utilities/pricing/dynamicPricing';
import { getLinodeRegionPrice } from 'src/utilities/pricing/linodes';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';

import { KubernetesPlansPanel } from '../../KubernetesPlansPanel/KubernetesPlansPanel';
import { nodeWarning } from '../../kubeUtils';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { TooltipIcon } from 'src/components/TooltipIcon';
import { Typography } from 'src/components/Typography';
import { useRegionsQuery } from 'src/queries/regions';
import { queryKey as vlansQueryKey } from 'src/queries/vlans';
import arrayToList from 'src/utilities/arrayToDelimiterSeparatedList';
import { arrayToList } from 'src/utilities/arrayToList';
import {
doesRegionSupportFeature,
regionsWithFeature,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ import { ExtendedType, extendType } from 'src/utilities/extendType';
import { isEURegion } from 'src/utilities/formatRegion';
import { getLinodeRegionPrice } from 'src/utilities/pricing/linodes';
import { getQueryParamsFromQueryString } from 'src/utilities/queryParams';
import scrollErrorIntoView from 'src/utilities/scrollErrorIntoView';
import { scrollErrorIntoView } from 'src/utilities/scrollErrorIntoView';
import { validatePassword } from 'src/utilities/validatePassword';

import LinodeCreate from './LinodeCreate';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { AppDetailDrawer } from 'src/features/OneClickApps';
import { oneClickApps } from 'src/features/OneClickApps/oneClickApps';
import UserDefinedFieldsPanel from 'src/features/StackScripts/UserDefinedFieldsPanel';
import { sendMarketplaceSearchEvent } from 'src/utilities/analytics';
import getAPIErrorsFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';

import SelectAppPanel from '../SelectAppPanel';
import {
Expand Down Expand Up @@ -184,7 +184,7 @@ export class FromAppsContent extends React.Component<CombinedProps, State> {
query,
} = this.state;

const hasErrorFor = getAPIErrorsFor(errorResources, errors);
const hasErrorFor = getAPIErrorFor(errorResources, errors);

return (
<React.Fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { Placeholder } from 'src/components/Placeholder/Placeholder';
import { Paper } from 'src/components/Paper';
import { reportException } from 'src/exceptionReporting';
import { extendType } from 'src/utilities/extendType';
import getAPIErrorsFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';

import SelectBackupPanel from '../SelectBackupPanel';
import SelectLinodePanel from '../SelectLinodePanel';
Expand Down Expand Up @@ -87,7 +87,7 @@ export class FromBackupsContent extends React.Component<CombinedProps, State> {

const extendedTypes = typesData?.map(extendType);

const hasErrorFor = getAPIErrorsFor(errorResources, errors);
const hasErrorFor = getAPIErrorFor(errorResources, errors);

const userHasBackups = linodesData.some(
(thisLinode) => thisLinode.backups.enabled
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Placeholder } from 'src/components/Placeholder/Placeholder';
import { Paper } from 'src/components/Paper';
import { buildQueryStringForLinodeClone } from 'src/features/Linodes/LinodesLanding/LinodeActionMenu';
import { extendType } from 'src/utilities/extendType';
import getAPIErrorsFor from 'src/utilities/getAPIErrorFor';
import { getAPIErrorFor } from 'src/utilities/getAPIErrorFor';
import { StyledGrid } from './CommonTabbedContent.styles';

import SelectLinodePanel from '../SelectLinodePanel';
Expand Down Expand Up @@ -43,7 +43,7 @@ export const FromLinodeContent = (props: CombinedProps) => {

const extendedTypes = typesData?.map(extendType);

const hasErrorFor = getAPIErrorsFor(errorResources, errors);
const hasErrorFor = getAPIErrorFor(errorResources, errors);

const history = useHistory();

Expand Down
Loading