components#Header TypeScript Examples
The following examples show how to use
components#Header.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: PageLayout.tsx From interface-v2 with GNU General Public License v3.0 | 6 votes |
PageLayout: React.FC<PageLayoutProps> = ({ children }) => {
const classes = useStyles();
return (
<Box className={classes.page}>
<BetaWarningBanner />
<Header />
<Background fallback={false} />
<Box className={classes.pageWrapper}>{children}</Box>
<Footer />
</Box>
);
}
Example #2
Source File: Layout.tsx From crossfeed with Creative Commons Zero v1.0 Universal | 6 votes |
Layout: React.FC = ({ children }) => {
const classes = useStyles();
const { pathname } = useLocation();
return (
<ScopedCssBaseline classes={{ root: classes.overrides }}>
<div className={classes.root}>
<GovBanner />
<Header />
{pathname === '/inventory' ? (
children
) : (
<div className={classes.content}>{children}</div>
)}
</div>
</ScopedCssBaseline>
);
}
Example #3
Source File: ErrorScreen.tsx From mobile with Apache License 2.0 | 6 votes |
ErrorScreen = () => {
return (
<Box flex={1} alignItems="center" backgroundColor="mainBackground">
<Box
flex={1}
paddingTop="m"
paddingBottom="m"
alignSelf="stretch"
accessibilityElementsHidden={false}
importantForAccessibility="no-hide-descendants"
>
<SafeAreaView>
<Header />
<Animated.View style={[styles.card]}>
<Content />
</Animated.View>
</SafeAreaView>
</Box>
</Box>
);
}
Example #4
Source File: App.tsx From gear-js with GNU General Public License v3.0 | 6 votes |
function App() {
const { isApiReady } = useApi();
return (
<>
<Header />
<main>
{isApiReady ? <Routing /> : <ApiLoader />}
<RefreshButton />
</main>
<Footer />
</>
);
}
Example #5
Source File: App.tsx From gear-js with GNU General Public License v3.0 | 6 votes |
function Component() {
const { isApiReady } = useApi();
useBalanceSubscription();
useLoggedInAccount();
return (
<>
<Header />
<main>{isApiReady ? <Routing /> : <ApiLoader />}</main>
<Footer />
</>
);
}
Example #6
Source File: BaseHomeView.tsx From mobile with Apache License 2.0 | 5 votes |
BaseHomeView = ({children, animationSource, animationPauseFrame}: BaseHomeViewProps) => {
const {
orientation,
scaledSize: {width: viewportWidth, height: viewportHeight},
} = useOrientation();
const prefersReducedMotion = useReduceMotionPreference();
const animationRef: React.Ref<LottieView> = useRef(null);
useEffect(() => {
// need to stop if user prefers reduced animations
if (prefersReducedMotion) {
if (animationPauseFrame) {
animationRef.current?.play(animationPauseFrame, animationPauseFrame);
} else {
animationRef.current?.reset();
animationRef.current?.pause();
}
}
}, [prefersReducedMotion, animationPauseFrame]);
return (
<SafeAreaView style={styles.flex}>
<Header />
<ScrollView
style={styles.flex}
contentContainerStyle={[
styles.scrollContainer,
animationSource && orientation === 'portrait' ? styles.scrollContainerWithAnimation : null,
]}
bounces={false}
>
{animationSource && orientation === 'portrait' && (
<Box marginBottom="m">
<LottieView
ref={animationRef}
style={{
...styles.animationBase,
width: viewportWidth * 2,
height: viewportHeight / 2,
}}
source={animationSource}
// don't play if user prefers reduced animations
autoPlay={!prefersReducedMotion}
loop={!prefersReducedMotion}
/>
</Box>
)}
<Box flex={1} alignItems="center" justifyContent="center" marginHorizontal="xl">
{children}
</Box>
</ScrollView>
</SafeAreaView>
);
}
Example #7
Source File: _app.page.tsx From webapis-playground with MIT License | 5 votes |
function MyApp({ Component, pageProps, router }: AppProps) {
const [favicon, setFavicon] = React.useState('/faviconLight.ico');
const changeFavicon = () => {
const isDark = window.matchMedia('(prefers-color-scheme: dark)');
if (!isDark.matches) return setFavicon('/faviconDark.ico');
return setFavicon('/faviconLight.ico');
};
React.useEffect(() => {
changeFavicon();
window
.matchMedia('(prefers-color-scheme: dark)')
.addEventListener('change', changeFavicon);
}, []);
return (
<motion.div
key={router.route}
initial="initial"
animate="animate"
variants={{
initial: {
opacity: 0,
},
animate: {
opacity: 1,
},
}}
>
<Head>
<meta charSet="utf-8" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta
name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=5"
/>
<meta name="theme-color" content="#317EFB" />
<link rel="manifest" href="/manifest.json" />
<link rel="apple-touch-icon" href="/apple-icon.png"></link>
</Head>
<SEO
title="Web APIs Playground - Create, Share, Learn JavaScript Web APIs"
description="The Web APIs Playground is a project to showcase the JavaScript Web APIs with examples and demonstrations. Client-side JavaScript APIs provides wrapper functions for many low-level tasks."
icon={favicon}
keywords={[
'javascript',
'web apis',
'drag and drop',
'image capture',
'full screen',
'next.js',
]}
twitter={{
site: '@tapasadhikary',
image: 'https://webapis-playground.vercel.app/readme/og.png',
card: 'summary_large_image',
}}
/>
<NextNProgress height={3} color="#fff" options={{ showSpinner: false }} />
<Header />
<Layout>
<Component {...pageProps} />
</Layout>
</motion.div>
);
}
Example #8
Source File: HomeScreen.tsx From mobile with Apache License 2.0 | 5 votes |
HomeScreen = () => {
const navigation = useNavigation();
useEffect(() => {
if (__DEV__ && TEST_MODE) {
DevSettings.addMenuItem('Show Demo Menu', () => {
navigation.navigate('TestScreen');
});
}
}, [navigation]);
// This only initiate system status updater.
// The actual updates will be delivered in useSystemStatus().
const subscribeToStatusUpdates = useExposureNotificationSystemStatusAutomaticUpdater();
useEffect(() => {
return subscribeToStatusUpdates();
}, [subscribeToStatusUpdates]);
const startExposureNotificationService = useStartExposureNotificationService();
const updateExposureStatus = useUpdateExposureStatus();
useEffect(() => {
startExposureNotificationService();
updateExposureStatus();
}, [startExposureNotificationService, updateExposureStatus]);
const bottomSheetRef = useRef<BottomSheetBehavior>(null);
const [isBottomSheetExpanded, setIsBottomSheetExpanded] = useState(false);
const currentStatus = useExposureStatus().type;
const previousStatus = usePrevious(currentStatus);
useLayoutEffect(() => {
if (previousStatus === ExposureStatusType.Monitoring && currentStatus === ExposureStatusType.Diagnosed) {
bottomSheetRef.current?.collapse();
}
}, [currentStatus, previousStatus]);
useLayoutEffect(() => {
bottomSheetRef.current?.setOnStateChange(setIsBottomSheetExpanded);
}, []);
const fadeAnim = useRef(new Animated.Value(0)).current;
React.useEffect(
() =>
Animated.timing(fadeAnim, {
toValue: 1,
delay: 1000,
duration: 10,
useNativeDriver: false,
}).start(),
[fadeAnim],
);
return (
<NotificationPermissionStatusProvider>
<Box flex={1} alignItems="center" backgroundColor="mainBackground">
<Box
flex={1}
paddingTop="m"
paddingBottom="m"
alignSelf="stretch"
accessibilityElementsHidden={isBottomSheetExpanded}
importantForAccessibility={isBottomSheetExpanded ? 'no-hide-descendants' : undefined}
>
<SafeAreaView>
<Header />
<Animated.View style={[styles.card, {opacity: fadeAnim}]}>
<Content isBottomSheetExpanded={isBottomSheetExpanded} />
</Animated.View>
</SafeAreaView>
</Box>
<BottomSheet ref={bottomSheetRef} expandedComponent={ExpandedContent} collapsedComponent={CollapsedContent} />
</Box>
</NotificationPermissionStatusProvider>
);
}
Example #9
Source File: Onboarding.tsx From mobile with Apache License 2.0 | 4 votes |
OnboardingScreen = () => {
const [i18n] = useI18n();
const [currentIndex, setCurrentIndex] = useState(0);
const carouselRef = useRef(null);
const {setOnboarded} = useStorage();
const navigation = useNavigation();
const startExposureNotificationService = useStartExposureNotificationService();
const handlePermissions = useCallback(async () => {
setOnboarded(true);
navigation.reset({
index: 0,
routes: [{name: 'Home'}],
});
await startExposureNotificationService();
}, [navigation, setOnboarded, startExposureNotificationService]);
const maxWidth = useMaxContentWidth();
const renderItem = useCallback(
({item}: {item: ViewKey}) => {
const ItemComponent = viewComponents[item];
return (
<Box maxWidth={maxWidth} alignSelf="center">
<ItemComponent />
</Box>
);
},
[maxWidth],
);
const nextItem = useCallback(() => {
if (carouselRef.current) {
if (currentIndex === contentData.length - 1) {
handlePermissions();
return;
}
(carouselRef.current! as CarouselStatic<ViewKey>).snapToNext();
}
}, [currentIndex, handlePermissions]);
const prevItem = useCallback(() => {
if (carouselRef.current) {
(carouselRef.current! as CarouselStatic<ViewKey>).snapToPrev();
}
}, []);
const isStart = currentIndex === 0;
const isEnd = currentIndex === contentData.length - 1;
const BackButton = <Button text={i18n.translate('Onboarding.ActionBack')} variant="subduedText" onPress={prevItem} />;
const LanguageButton = <LanguageToggle />;
const [layout, setLayout] = useState<LayoutRectangle | undefined>();
const onLayout = useCallback(({nativeEvent: {layout}}: LayoutChangeEvent) => {
setLayout(layout);
}, []);
return (
<Box flex={1} backgroundColor="overlayBackground">
<SafeAreaView style={styles.flex}>
<Header isOverlay />
<Box flex={1} justifyContent="center" onLayout={onLayout}>
{layout && (
<Carousel
ref={carouselRef}
data={contentData}
renderItem={renderItem}
sliderWidth={layout.width}
itemWidth={layout.width}
itemHeight={layout.height}
onSnapToItem={newIndex => setCurrentIndex(newIndex)}
/>
)}
</Box>
<Box flexDirection="row" padding="l">
<Box flex={1}>{isStart ? LanguageButton : BackButton}</Box>
<Box flex={1} justifyContent="center">
<ProgressCircles alignSelf="center" numberOfSteps={contentData.length} activeStep={currentIndex + 1} />
</Box>
<Box flex={1}>
<Button
text={i18n.translate(`Onboarding.Action${isEnd ? 'End' : 'Next'}`)}
variant="text"
onPress={nextItem}
/>
</Box>
</Box>
</SafeAreaView>
</Box>
);
}
Example #10
Source File: Routes.tsx From frontend-v1 with GNU Affero General Public License v3.0 | 4 votes |
Routes: FC<Props> = () => {
const { showConfirmationScreen } = useDeposits();
const { error, provider, chainId } = useConnection();
const location = useLocation();
const sendState = useAppSelector((state) => state.send);
const { error: globalError, removeError } = useContext(ErrorContext);
const wrongNetworkSend =
provider &&
chainId &&
(error instanceof UnsupportedChainIdError ||
chainId !== sendState.currentlySelectedFromChain.chainId);
const wrongNetworkPool =
provider &&
(error instanceof UnsupportedChainIdError ||
chainId !== DEFAULT_TO_CHAIN_ID);
return (
<>
{showMigrationBanner && (
<Banner>
<div>
Across v2 transition is coming!{" "}
<a
href="https://medium.com/across-protocol/lps-migrate-liquidity-from-v1-to-v2-screenshots-and-faqs-8616150b3396"
target="_blank"
rel="noreferrer"
>
Read here
</a>{" "}
to learn how to migrate your pool liquidity from Across v1.
</div>
</Banner>
)}
{globalError && (
<SuperHeader>
<div>{globalError}</div>
<RemoveErrorSpan onClick={() => removeError()}>X</RemoveErrorSpan>
</SuperHeader>
)}
{wrongNetworkSend && location.pathname === "/" && (
<SuperHeader>
<div>
You are on an incorrect network. Please{" "}
<button
onClick={() =>
switchChain(
provider,
sendState.currentlySelectedFromChain.chainId
)
}
>
switch to{" "}
{CHAINS[sendState.currentlySelectedFromChain.chainId].name}
</button>
</div>
</SuperHeader>
)}
{wrongNetworkPool && location.pathname === "/pool" && (
<SuperHeader>
<div>
You are on an incorrect network. Please{" "}
<button onClick={() => switchChain(provider, DEFAULT_TO_CHAIN_ID)}>
switch to {CHAINS[DEFAULT_TO_CHAIN_ID].name}
</button>
</div>
</SuperHeader>
)}
<Header />
<Switch>
{!process.env.REACT_APP_HIDE_POOL ? (
<Route exact path="/pool" component={Pool} />
) : null}
<Route exact path="/about" component={About} />
<Route
exact
path="/"
component={showConfirmationScreen ? Confirmation : Send}
/>
</Switch>
</>
);
}