diff --git a/src/view/com/auth/onboarding/RecommendedFeeds.tsx b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
index 12c984e718..28dc2cdd02 100644
--- a/src/view/com/auth/onboarding/RecommendedFeeds.tsx
+++ b/src/view/com/auth/onboarding/RecommendedFeeds.tsx
@@ -1,11 +1,176 @@
-import 'react'
-import {withBreakpoints} from 'view/com/util/layouts/withBreakpoints'
-import {RecommendedFeedsDesktop} from './RecommendedFeedsDesktop'
-import {RecommendedFeedsTablet} from './RecommendedFeedsTablet'
-import {RecommendedFeedsMobile} from './RecommendedFeedsMobile'
+import React from 'react'
+import {FlatList, StyleSheet, View} from 'react-native'
+import {observer} from 'mobx-react-lite'
+import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
+import {TabletOrDesktop, Mobile} from 'view/com/util/layouts/Breakpoints'
+import {Text} from 'view/com/util/text/Text'
+import {ViewHeader} from 'view/com/util/ViewHeader'
+import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
+import {Button} from 'view/com/util/forms/Button'
+import {RecommendedFeedsItem} from './RecommendedFeedsItem'
+import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
+import {usePalette} from 'lib/hooks/usePalette'
+import {RECOMMENDED_FEEDS} from 'lib/constants'
-export const RecommendedFeeds = withBreakpoints(
- RecommendedFeedsMobile,
- RecommendedFeedsTablet,
- RecommendedFeedsDesktop,
-)
+type Props = {
+ next: () => void
+}
+export const RecommendedFeeds = observer(({next}: Props) => {
+ const pal = usePalette('default')
+ const {isTabletOrMobile} = useWebMediaQueries()
+
+ const title = (
+ <>
+
+ Choose your
+
+
+ Recomended
+
+
+ Feeds
+
+
+ Feeds are created by users to curate content. Choose some feeds that you
+ find interesting.
+
+
+
+
+ >
+ )
+
+ return (
+ <>
+
+
+ }
+ keyExtractor={item => item.did + item.rkey}
+ style={{flex: 1}}
+ />
+
+
+
+
+
+
+ Check out some recommended feeds. Tap + to add them to your list of
+ pinned feeds.
+
+
+ }
+ keyExtractor={item => item.did + item.rkey}
+ style={{flex: 1}}
+ />
+
+
+
+
+ >
+ )
+})
+
+const tdStyles = StyleSheet.create({
+ container: {
+ flex: 1,
+ marginHorizontal: 16,
+ justifyContent: 'space-between',
+ },
+ title1: {
+ fontSize: 36,
+ fontWeight: '800',
+ textAlign: 'right',
+ },
+ title1Small: {
+ fontSize: 24,
+ },
+ title2: {
+ fontSize: 58,
+ fontWeight: '800',
+ textAlign: 'right',
+ },
+ title2Small: {
+ fontSize: 36,
+ },
+ description: {
+ maxWidth: 400,
+ marginTop: 10,
+ marginLeft: 'auto',
+ textAlign: 'right',
+ },
+})
+
+const mStyles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'space-between',
+ },
+ header: {
+ marginBottom: 16,
+ marginHorizontal: 16,
+ },
+ button: {
+ marginBottom: 16,
+ marginHorizontal: 16,
+ marginTop: 16,
+ },
+ buttonText: {
+ textAlign: 'center',
+ fontSize: 18,
+ paddingVertical: 4,
+ },
+})
diff --git a/src/view/com/auth/onboarding/RecommendedFeedsDesktop.tsx b/src/view/com/auth/onboarding/RecommendedFeedsDesktop.tsx
deleted file mode 100644
index 937313bc6d..0000000000
--- a/src/view/com/auth/onboarding/RecommendedFeedsDesktop.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-import React from 'react'
-import {FlatList, StyleSheet, View} from 'react-native'
-import {observer} from 'mobx-react-lite'
-import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
-import {Text} from 'view/com/util/text/Text'
-import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
-import {Button} from 'view/com/util/forms/Button'
-import {RecommendedFeedsItem} from './RecommendedFeedsItem'
-import {usePalette} from 'lib/hooks/usePalette'
-import {RECOMMENDED_FEEDS} from 'lib/constants'
-
-type Props = {
- next: () => void
-}
-export const RecommendedFeedsDesktop = observer(({next}: Props) => {
- const pal = usePalette('default')
-
- const title = (
- <>
- Choose your
- Recomended
- Feeds
-
- Feeds are created by users to curate content. Choose some feeds that you
- find interesting.
-
-
-
-
- >
- )
-
- return (
-
- }
- keyExtractor={item => item.did + item.rkey}
- style={{flex: 1}}
- />
-
- )
-})
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- marginHorizontal: 16,
- justifyContent: 'space-between',
- },
- title1: {
- fontSize: 36,
- fontWeight: '800',
- textAlign: 'right',
- },
- title2: {
- fontSize: 58,
- fontWeight: '800',
- textAlign: 'right',
- },
- description: {
- maxWidth: 400,
- marginTop: 10,
- marginLeft: 'auto',
- textAlign: 'right',
- },
-})
diff --git a/src/view/com/auth/onboarding/RecommendedFeedsMobile.tsx b/src/view/com/auth/onboarding/RecommendedFeedsMobile.tsx
deleted file mode 100644
index a3e379883a..0000000000
--- a/src/view/com/auth/onboarding/RecommendedFeedsMobile.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from 'react'
-import {FlatList, StyleSheet, View} from 'react-native'
-import {observer} from 'mobx-react-lite'
-import {Text} from 'view/com/util/text/Text'
-import {Button} from 'view/com/util/forms/Button'
-import {ViewHeader} from 'view/com/util/ViewHeader'
-import {RecommendedFeedsItem} from './RecommendedFeedsItem'
-import {usePalette} from 'lib/hooks/usePalette'
-import {RECOMMENDED_FEEDS} from 'lib/constants'
-
-type Props = {
- next: () => void
-}
-export const RecommendedFeedsMobile = observer(({next}: Props) => {
- const pal = usePalette('default')
-
- return (
-
-
-
- Check out some recommended feeds. Tap + to add them to your list of
- pinned feeds.
-
-
- }
- keyExtractor={item => item.did + item.rkey}
- style={{flex: 1}}
- />
-
-
-
- )
-})
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- justifyContent: 'space-between',
- },
- header: {
- marginBottom: 16,
- marginHorizontal: 16,
- },
- button: {
- marginBottom: 16,
- marginHorizontal: 16,
- marginTop: 16,
- },
- buttonText: {
- textAlign: 'center',
- fontSize: 18,
- paddingVertical: 4,
- },
-})
diff --git a/src/view/com/auth/onboarding/RecommendedFeedsTablet.tsx b/src/view/com/auth/onboarding/RecommendedFeedsTablet.tsx
deleted file mode 100644
index bc2e57adee..0000000000
--- a/src/view/com/auth/onboarding/RecommendedFeedsTablet.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import React from 'react'
-import {FlatList, StyleSheet, View} from 'react-native'
-import {observer} from 'mobx-react-lite'
-import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
-import {Text} from 'view/com/util/text/Text'
-import {TitleColumnLayout} from 'view/com/util/layouts/TitleColumnLayout'
-import {Button} from 'view/com/util/forms/Button'
-import {RecommendedFeedsItem} from './RecommendedFeedsItem'
-import {usePalette} from 'lib/hooks/usePalette'
-import {RECOMMENDED_FEEDS} from 'lib/constants'
-
-type Props = {
- next: () => void
-}
-export const RecommendedFeedsTablet = observer(({next}: Props) => {
- const pal = usePalette('default')
-
- const title = (
- <>
- Choose your
- Recomended
- Feeds
-
- Feeds are created by users to curate content. Choose some feeds that you
- find interesting.
-
-
-
-
- >
- )
-
- return (
-
- }
- keyExtractor={item => item.did + item.rkey}
- style={{flex: 1}}
- />
-
- )
-})
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- marginHorizontal: 16,
- justifyContent: 'space-between',
- },
- title1: {
- fontSize: 24,
- fontWeight: '800',
- textAlign: 'right',
- },
- title2: {
- fontSize: 36,
- fontWeight: '800',
- textAlign: 'right',
- },
- description: {
- maxWidth: 400,
- marginTop: 10,
- marginLeft: 'auto',
- textAlign: 'right',
- },
-})
diff --git a/src/view/com/util/layouts/Breakpoints.tsx b/src/view/com/util/layouts/Breakpoints.tsx
new file mode 100644
index 0000000000..51c3ccd5af
--- /dev/null
+++ b/src/view/com/util/layouts/Breakpoints.tsx
@@ -0,0 +1,8 @@
+import React from 'react'
+
+export const Desktop = ({}: React.PropsWithChildren<{}>) => null
+export const TabletOrDesktop = ({}: React.PropsWithChildren<{}>) => null
+export const Tablet = ({}: React.PropsWithChildren<{}>) => null
+export const TabletOrMobile = ({children}: React.PropsWithChildren<{}>) =>
+ children
+export const Mobile = ({children}: React.PropsWithChildren<{}>) => children
diff --git a/src/view/com/util/layouts/Breakpoints.web.tsx b/src/view/com/util/layouts/Breakpoints.web.tsx
new file mode 100644
index 0000000000..7031a17358
--- /dev/null
+++ b/src/view/com/util/layouts/Breakpoints.web.tsx
@@ -0,0 +1,20 @@
+import React from 'react'
+import MediaQuery from 'react-responsive'
+
+export const Desktop = ({children}: React.PropsWithChildren<{}>) => (
+ {children}
+)
+export const TabletOrDesktop = ({children}: React.PropsWithChildren<{}>) => (
+ {children}
+)
+export const Tablet = ({children}: React.PropsWithChildren<{}>) => (
+
+ {children}
+
+)
+export const TabletOrMobile = ({children}: React.PropsWithChildren<{}>) => (
+ {children}
+)
+export const Mobile = ({children}: React.PropsWithChildren<{}>) => (
+ {children}
+)