Skip to content
Open
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
4 changes: 3 additions & 1 deletion src/app/[locale]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,9 @@ export default async function LocaleLayout({
<link rel='preconnect' href='https://firebaseapp.com' />
<link rel='dns-prefetch' href='https://firebaseapp.com' />
</head>
<body className={`${mulish.variable} ${ibmPlexMono.variable}`}>
<body
className={`${mulish.className} ${mulish.variable} ${ibmPlexMono.variable}`}
>
<ThemeRegistry>
<NextIntlClientProvider messages={messages}>
<Providers remoteConfig={remoteConfig}>
Expand Down
8 changes: 7 additions & 1 deletion src/app/components/CoveredAreaMap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import { computeBoundingBox } from '../screens/Feed/Feed.functions';
import { displayFormattedDate } from '../utils/date';
import { useSelector } from 'react-redux';
import ModeOfTravelIcon from '@mui/icons-material/ModeOfTravel';
import { GtfsVisualizationMap } from './GtfsVisualizationMap';
import ZoomOutMapIcon from '@mui/icons-material/ZoomOutMap';
import { useRemoteConfig } from '../context/RemoteConfigProvider';
import { sendGAEvent } from '@next/third-parties/google';
Expand All @@ -45,6 +44,13 @@ import {

// Dynamically import Map and MapGeoJSON for code splitting and bundle size
// Useful since these components are rendered conditionally to the tab and will only import when on page
const GtfsVisualizationMap = dynamic(
async () =>
await import('./GtfsVisualizationMap').then(
(mod) => mod.GtfsVisualizationMap,
),
{ ssr: false },
);
const MapGeoJSON = dynamic(
async () => await import('./MapGeoJSON').then((mod) => mod.MapGeoJSON),
{ ssr: false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,20 +89,20 @@ export const useTableColumns = (): Array<
}) => (
<div>
{cell.getValue<string[]>()?.map((version, index) => (
<div
<Box
key={index}
style={{
sx={{
cursor: 'pointer',
marginBottom: 2,
padding: 1,
marginBottom: '2px',
padding: '1px',
'&:hover': { textDecoration: 'underline', color: '#000' },
}}
className={'navigable-list-item'}
onClick={() => {
router.push(`/metrics/gbfs/versions?version=${version}`);
}}
>
{version}
</div>
</Box>
))}
</div>
),
Expand Down
1 change: 0 additions & 1 deletion src/app/screens/Analytics/GBFSFeedAnalytics/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import {
Typography,
} from '@mui/material';

import '../analytics.css';
import { useSearchParams } from 'next/navigation';
import {
fetchAvailableFilesStart,
Expand Down
104 changes: 73 additions & 31 deletions src/app/screens/Analytics/GTFSFeedAnalytics/GTFSFeedAnalyticsTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,19 @@ export const useTableColumns = (
title={`Open feed ${cell.getValue<string>()} page in new tab`}
placement='top-start'
>
<div
className={'navigable-list-item'}
<Box
sx={{
cursor: 'pointer',
'&:hover': { textDecoration: 'underline', color: '#000' },
}}
onClick={() => {
const url = `/feeds/${cell.getValue<string>()}`;
window.open(url, '_blank');
}}
>
{renderedCellValue}{' '}
<OpenInNew sx={{ verticalAlign: 'middle' }} fontSize='small' />
</div>
</Box>
</Tooltip>
),
},
Expand Down Expand Up @@ -157,20 +160,20 @@ export const useTableColumns = (
Cell: ({ cell }: { cell: MRT_Cell<GTFSFeedMetrics> }) => (
<div>
{cell.getValue<string[]>()?.map((error, index) => (
<div
<Box
key={index}
style={{
sx={{
cursor: 'pointer',
marginBottom: 2,
padding: 1,
marginBottom: '2px',
padding: '1px',
'&:hover': { textDecoration: 'underline', color: '#000' },
}}
className={'navigable-list-item'}
onClick={() => {
router.push(`/metrics/gtfs/notices?noticeCode=${error}`);
}}
>
{error}
</div>
</Box>
))}
</div>
),
Expand All @@ -180,9 +183,20 @@ export const useTableColumns = (
Header: (
<span>
Notice Severity :
<span className='notice-severity-error notice-severity-label'>
<Box
component='span'
sx={{
borderRadius: '5px',
padding: '5px',
marginLeft: '5px',
marginBottom: '2px',
width: 'fit-content',
backgroundColor: '#d54402',
color: 'white',
}}
>
ERROR
</span>
</Box>
</span>
),
Footer: () => (
Expand All @@ -199,20 +213,20 @@ export const useTableColumns = (
Cell: ({ cell }: { cell: MRT_Cell<GTFSFeedMetrics> }) => (
<div>
{cell.getValue<string[]>()?.map((warning, index) => (
<div
<Box
key={index}
style={{
sx={{
cursor: 'pointer',
marginBottom: 2,
padding: 1,
marginBottom: '2px',
padding: '1px',
'&:hover': { textDecoration: 'underline', color: '#000' },
}}
className={'navigable-list-item'}
onClick={() => {
router.push(`/metrics/gtfs/notices?noticeCode=${warning}`);
}}
>
{warning}
</div>
</Box>
))}
</div>
),
Expand All @@ -222,9 +236,20 @@ export const useTableColumns = (
Header: (
<span>
Notice Severity :
<span className='notice-severity-warning notice-severity-label'>
<Box
component='span'
sx={{
borderRadius: '5px',
padding: '5px',
marginLeft: '5px',
marginBottom: '2px',
width: 'fit-content',
backgroundColor: '#f3c280',
color: 'black',
}}
>
WARNING
</span>
</Box>
</span>
),
Footer: () => (
Expand All @@ -241,28 +266,39 @@ export const useTableColumns = (
Header: (
<span>
Notice Severity :
<span className='notice-severity-info notice-severity-label'>
<Box
component='span'
sx={{
borderRadius: '5px',
padding: '5px',
marginLeft: '5px',
marginBottom: '2px',
width: 'fit-content',
backgroundColor: '#badfb7',
color: 'black',
}}
>
INFO
</span>
</Box>
</span>
),
Cell: ({ cell }: { cell: MRT_Cell<GTFSFeedMetrics> }) => (
<div>
{cell.getValue<string[]>()?.map((info, index) => (
<div
<Box
key={index}
style={{
sx={{
cursor: 'pointer',
marginBottom: 2,
padding: 1,
marginBottom: '2px',
padding: '1px',
'&:hover': { textDecoration: 'underline', color: '#000' },
}}
className={'navigable-list-item'}
onClick={() => {
router.push(`/metrics/gtfs/notices?noticeCode=${info}`);
}}
>
{info}
</div>
</Box>
))}
</div>
),
Expand Down Expand Up @@ -313,10 +349,16 @@ export const useTableColumns = (
{group}
</div>
{features.map((featureData, index) => (
<div
<Box
key={index}
style={{ cursor: 'pointer', marginLeft: '10px' }}
className={'navigable-list-item'}
sx={{
cursor: 'pointer',
marginLeft: '10px',
'&:hover': {
textDecoration: 'underline',
color: '#000',
},
}}
onClick={() => {
router.push(
`/metrics/gtfs/features?featureName=${featureData.feature}`,
Expand All @@ -332,7 +374,7 @@ export const useTableColumns = (
<IconButton>{componentDecorator.icon}</IconButton>
</Tooltip>
)}
</div>
</Box>
))}
</div>
);
Expand Down
8 changes: 2 additions & 6 deletions src/app/screens/Analytics/GTFSFeedAnalytics/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import {
Typography,
} from '@mui/material';

import '../analytics.css';
import { useSearchParams } from 'next/navigation';
import {
fetchAvailableFilesStart,
Expand All @@ -36,10 +35,7 @@ import { type AnalyticsFile, type GTFSFeedMetrics } from '../types';
import { useRemoteConfig } from '../../../context/RemoteConfigProvider';
import DownloadIcon from '@mui/icons-material/Download';
import { download, generateCsv, mkConfig } from 'export-to-csv';

let globalAnalyticsBucketEndpoint: string | undefined;
export const getAnalyticsBucketEndpoint = (): string | undefined =>
globalAnalyticsBucketEndpoint;
import { setAnalyticsBucketEndpoint } from '../utils';

export default function GTFSFeedAnalytics(): React.ReactElement {
const searchParams = useSearchParams();
Expand Down Expand Up @@ -79,7 +75,7 @@ export default function GTFSFeedAnalytics(): React.ReactElement {
};

React.useEffect(() => {
globalAnalyticsBucketEndpoint = config.gtfsMetricsBucketEndpoint;
setAnalyticsBucketEndpoint(config.gtfsMetricsBucketEndpoint);
dispatch(fetchAvailableFilesStart());
}, [dispatch, config.gtfsMetricsBucketEndpoint]);

Expand Down
32 changes: 0 additions & 32 deletions src/app/screens/Analytics/analytics.css

This file was deleted.

7 changes: 6 additions & 1 deletion src/app/screens/Feed/components/FeedSummary.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,16 @@ import {
StyledListItem,
} from '../Feed.styles';
import { getFeatureComponentDecorators } from '../../../utils/consts';
import Locations from '../../../components/Locations';
import dynamic from 'next/dynamic';
import CopyLinkElement from './CopyLinkElement';
import { formatDateShort } from '../../../utils/date';
import ExternalIds from './ExternalIds';

const Locations = dynamic(
async () => await import('../../../components/Locations'),
{ ssr: false },
);

export interface FeedSummaryProps {
feed: GTFSFeedType | GTFSRTFeedType | GBFSFeedType | undefined;
sortedProviders: string[];
Expand Down
2 changes: 1 addition & 1 deletion src/app/store/saga/gtfs-analytics-saga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
type GTFSMetrics,
} from '../../screens/Analytics/types';
import { getLocationName } from '../../services/feeds/utils';
import { getAnalyticsBucketEndpoint } from '../../screens/Analytics/GTFSFeedAnalytics';
import { getAnalyticsBucketEndpoint } from '../../screens/Analytics/utils';

function* fetchFeedMetricsSaga(
action: ReturnType<typeof selectFile>,
Expand Down
17 changes: 0 additions & 17 deletions src/app/styles/Footer.css

This file was deleted.

Loading