Skip to content

Commit bc7b2a3

Browse files
authored
Merge branch 'main' into feat/pt-126
2 parents 9d4098d + 7ba634e commit bc7b2a3

File tree

4 files changed

+133
-5
lines changed

4 files changed

+133
-5
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
MDB ID,TDG ID
2+
mdb-2604,81026
3+
mdb-1898,83138
4+
mdb-888,39603
5+
mdb-1056,80736
6+
mdb-2133,39601
7+
mdb-843,39599
8+
mdb-889,39594
9+
mdb-988,39591
10+
mdb-1159,83281
11+
mdb-1880,78904
12+
mdb-2404,82547
13+
mdb-844,62323
14+
mdb-985,40287
15+
mdb-1096,80721
16+
mdb-1257,82641
17+
mdb-1840,79831
18+
mdb-1887,82721
19+
mdb-1897,80772
20+
mdb-2685,82711
21+
mdb-836,82711
22+
mdb-642,78934
23+
mdb-999,81559
24+
mdb-1314,52605
25+
mdb-1878,9279
26+
mdb-2458,80934
27+
mdb-2842,82361
28+
mdb-2686,82330
29+
mdb-1879,82367
30+
mdb-2622,83024
31+
mdb-1895,82907
32+
mdb-1205,83194
33+
mdb-1259,83194
34+
mdb-1782,83194
35+
mdb-1783,83194
36+
mdb-1789,79352
37+
mdb-1025,83251
38+
mdb-1261,82446
39+
mdb-2005,79520
40+
mdb-2007,80036
41+
mdb-1990,82683
42+
mdb-2431,82199
43+
mdb-1987,80694
44+
mdb-853,11681
45+
mdb-1116,80590
46+
mdb-2152,81995
47+
mdb-2626,81898
48+
mdb-1283,83448
49+
mdb-2153,80742
50+
mdb-1298,80725
51+
mdb-1855,81794
52+
mdb-1055,83459
53+
mdb-1854,83462
54+
mdb-1876,51449
55+
mdb-2139,82555
56+
mdb-1884,12608
57+
mdb-1989,81457
58+
mdb-1153,83126
59+
mdb-600,71223
60+
mdb-641,81618
61+
mdb-2003,79420
62+
mdb-1888,12601
63+
mdb-2620,82386
64+
mdb-790,82386
65+
mdb-1839,79814
66+
mdb-2004,79822
67+
mdb-1894,8597
68+
mdb-1998,82704
69+
mdb-658,82664
70+
mdb-1256,81346
71+
mdb-1877,64280
72+
mdb-2627,79847
73+
mdb-2628,79747
74+
mdb-2006,65812
75+
mdb-1024,81678
76+
mdb-2738,82388
77+
mdb-1896,82413
78+
mdb-1286,79508
79+
mdb-1893,8487
80+
mdb-1890,8201
81+
mdb-1026,80921
82+
mdb-845,"82285, 82137, 82136"

web-app/src/app/components/Header.tsx

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313
Select,
1414
useTheme,
1515
Link,
16+
Alert,
17+
AlertTitle,
1618
} from '@mui/material';
1719
import MenuIcon from '@mui/icons-material/Menu';
1820
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
@@ -26,7 +28,7 @@ import {
2628
gbfsMetricsNavItems,
2729
} from '../constants/Navigation';
2830
import type NavigationItem from '../interface/Navigation';
29-
import { useLocation, useNavigate } from 'react-router-dom';
31+
import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
3032
import { useSelector } from 'react-redux';
3133
import { selectIsAuthenticated, selectUserEmail } from '../store/selectors';
3234
import LogoutConfirmModal from './LogoutConfirmModal';
@@ -44,9 +46,15 @@ import ThemeToggle from './ThemeToggle';
4446
import { useTranslation } from 'react-i18next';
4547

4648
export default function DrawerAppBar(): React.ReactElement {
49+
const [searchParams, setSearchParams] = useSearchParams();
50+
const hasTransitFeedsRedirectParam =
51+
searchParams.get('utm_source') === 'transitfeeds';
4752
const theme = useTheme();
4853
const location = useLocation();
4954
const [mobileOpen, setMobileOpen] = React.useState(false);
55+
const [hasTransitFeedsRedirect, setHasTransitFeedsRedirect] = React.useState(
56+
hasTransitFeedsRedirectParam,
57+
);
5058
const [openDialog, setOpenDialog] = React.useState(false);
5159
const [activeTab, setActiveTab] = React.useState('');
5260
const [navigationItems, setNavigationItems] = React.useState<
@@ -118,7 +126,7 @@ export default function DrawerAppBar(): React.ReactElement {
118126
<Box
119127
sx={{
120128
display: 'flex',
121-
height: '64px',
129+
height: hasTransitFeedsRedirect ? '115px' : '64px',
122130
mb: { xs: 2, md: 4 },
123131
}}
124132
>
@@ -399,7 +407,32 @@ export default function DrawerAppBar(): React.ReactElement {
399407
)}
400408
</Box>
401409
</Toolbar>
410+
{hasTransitFeedsRedirect && (
411+
<Alert
412+
severity='warning'
413+
onClose={() => {
414+
setHasTransitFeedsRedirect(false);
415+
if (hasTransitFeedsRedirectParam) {
416+
searchParams.delete('utm_source');
417+
setSearchParams(searchParams);
418+
}
419+
}}
420+
sx={{ '.MuiAlert-message': { pb: { xs: 0, md: 1 } } }}
421+
>
422+
<AlertTitle>
423+
You&apos;ve been redirected from TransitFeeds
424+
</AlertTitle>
425+
<Box
426+
component={'span'}
427+
sx={{ display: { xs: 'none', md: 'block' } }}
428+
>
429+
This page now lives on MobilityDatabase.org, where you&apos;ll
430+
find the most up-to-date transit data.
431+
</Box>
432+
</Alert>
433+
)}
402434
</AppBar>
435+
403436
<nav>
404437
<Drawer
405438
container={container}

web-app/src/app/screens/Feeds/Feeds.styles.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ export const chipHolderStyles: SxProps<Theme> = (theme) => ({
1313
export const stickyHeaderStyles = (props: {
1414
theme: Theme;
1515
isSticky: boolean;
16+
headerBannerVisible: boolean;
1617
}): SxProps => {
1718
const styles: SxProps = {
1819
display: 'flex',
1920
alignItems: 'center',
2021
position: 'sticky',
2122
zIndex: 1,
2223
top: {
23-
xs: '56px',
24-
sm: '65px',
24+
xs: props.headerBannerVisible ? '113px' : '56px',
25+
md: props.headerBannerVisible ? '140px' : '65px',
2526
},
2627
background: props.theme.palette.background.default,
2728
transition: 'box-shadow 0.3s ease-in-out',

web-app/src/app/screens/Feeds/index.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ export default function Feed(): React.ReactElement {
7979
const feedsData = useSelector(selectFeedsData);
8080
const feedStatus = useSelector(selectFeedsStatus);
8181

82+
const hasTransitFeedsRedirectParam =
83+
searchParams.get('utm_source') === 'transitfeeds';
84+
8285
// features i/o
8386
const areNoDataTypesSelected =
8487
!selectedFeedTypes.gtfs &&
@@ -171,6 +174,9 @@ export default function Feed(): React.ReactElement {
171174
if (isOfficialFeedSearch) {
172175
newSearchParams.set('official', 'true');
173176
}
177+
if (searchParams.get('utm_source') === 'transitfeeds') {
178+
newSearchParams.set('utm_source', 'transitfeeds');
179+
}
174180
if (searchParams.toString() !== newSearchParams.toString()) {
175181
setSearchParams(newSearchParams, { replace: false });
176182
}
@@ -318,7 +324,13 @@ export default function Feed(): React.ReactElement {
318324
</Typography>
319325
)}
320326
</Container>
321-
<Box sx={stickyHeaderStyles({ theme, isSticky })}>
327+
<Box
328+
sx={stickyHeaderStyles({
329+
theme,
330+
isSticky,
331+
headerBannerVisible: hasTransitFeedsRedirectParam,
332+
})}
333+
>
322334
<Container
323335
maxWidth={'xl'}
324336
component='form'

0 commit comments

Comments
 (0)