about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/api/feed/home.ts3
-rw-r--r--src/lib/strings/embed-player.ts6
-rw-r--r--src/lib/themes.ts110
3 files changed, 62 insertions, 57 deletions
diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts
index 91634927a..436a66d07 100644
--- a/src/lib/api/feed/home.ts
+++ b/src/lib/api/feed/home.ts
@@ -68,7 +68,8 @@ export class HomeFeedAPI implements FeedAPI {
       const res = await this.following.fetch({cursor, limit})
       returnCursor = res.cursor
       posts = posts.concat(res.feed)
-      if (res.feed.length === 0 || !cursor) {
+      if (!returnCursor) {
+        cursor = ''
         posts.push(FALLBACK_MARKER_POST)
         this.usingDiscover = true
       }
diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts
index 0f97eb080..3270b6f07 100644
--- a/src/lib/strings/embed-player.ts
+++ b/src/lib/strings/embed-player.ts
@@ -68,11 +68,12 @@ export function parseEmbedPlayerFromUrl(
   // youtube
   if (urlp.hostname === 'youtu.be') {
     const videoId = urlp.pathname.split('/')[1]
+    const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0)
     if (videoId) {
       return {
         type: 'youtube_video',
         source: 'youtube',
-        playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`,
+        playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1&start=${seek}`,
       }
     }
   }
@@ -84,13 +85,14 @@ export function parseEmbedPlayerFromUrl(
     const [_, page, shortVideoId] = urlp.pathname.split('/')
     const videoId =
       page === 'shorts' ? shortVideoId : (urlp.searchParams.get('v') as string)
+    const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0)
 
     if (videoId) {
       return {
         type: page === 'shorts' ? 'youtube_short' : 'youtube_video',
         source: page === 'shorts' ? 'youtubeShorts' : 'youtube',
         hideDetails: page === 'shorts' ? true : undefined,
-        playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`,
+        playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1&start=${seek}`,
       }
     }
   }
diff --git a/src/lib/themes.ts b/src/lib/themes.ts
index ad7574db6..2d4515c77 100644
--- a/src/lib/themes.ts
+++ b/src/lib/themes.ts
@@ -2,30 +2,32 @@ import {Platform} from 'react-native'
 import type {Theme} from './ThemeContext'
 import {colors} from './styles'
 
+import {darkPalette, lightPalette} from '#/alf/themes'
+
 export const defaultTheme: Theme = {
   colorScheme: 'light',
   palette: {
     default: {
-      background: colors.white,
-      backgroundLight: colors.gray1,
-      text: colors.black,
-      textLight: colors.gray5,
-      textInverted: colors.white,
-      link: colors.blue3,
-      border: '#f0e9e9',
-      borderDark: '#e0d9d9',
-      icon: colors.gray4,
+      background: lightPalette.white,
+      backgroundLight: lightPalette.contrast_50,
+      text: lightPalette.black,
+      textLight: lightPalette.contrast_700,
+      textInverted: lightPalette.white,
+      link: lightPalette.primary_500,
+      border: lightPalette.contrast_100,
+      borderDark: lightPalette.contrast_200,
+      icon: lightPalette.contrast_500,
 
       // non-standard
-      textVeryLight: colors.gray4,
-      replyLine: colors.gray2,
-      replyLineDot: colors.gray3,
-      unreadNotifBg: '#ebf6ff',
-      unreadNotifBorder: colors.blue1,
-      postCtrl: '#71768A',
-      brandText: '#0066FF',
-      emptyStateIcon: '#B6B6C9',
-      borderLinkHover: '#cac1c1',
+      textVeryLight: lightPalette.contrast_400,
+      replyLine: lightPalette.contrast_100,
+      replyLineDot: lightPalette.contrast_200,
+      unreadNotifBg: lightPalette.primary_25,
+      unreadNotifBorder: lightPalette.primary_100,
+      postCtrl: lightPalette.contrast_500,
+      brandText: lightPalette.primary_500,
+      emptyStateIcon: lightPalette.contrast_300,
+      borderLinkHover: lightPalette.contrast_300,
     },
     primary: {
       background: colors.blue3,
@@ -50,15 +52,15 @@ export const defaultTheme: Theme = {
       icon: colors.green4,
     },
     inverted: {
-      background: colors.black,
-      backgroundLight: colors.gray6,
-      text: colors.white,
-      textLight: colors.gray3,
-      textInverted: colors.black,
-      link: colors.blue2,
-      border: colors.gray3,
-      borderDark: colors.gray2,
-      icon: colors.gray5,
+      background: darkPalette.black,
+      backgroundLight: darkPalette.contrast_50,
+      text: darkPalette.white,
+      textLight: darkPalette.contrast_700,
+      textInverted: darkPalette.black,
+      link: darkPalette.primary_500,
+      border: darkPalette.contrast_100,
+      borderDark: darkPalette.contrast_200,
+      icon: darkPalette.contrast_500,
     },
     error: {
       background: colors.red3,
@@ -292,26 +294,26 @@ export const darkTheme: Theme = {
   palette: {
     ...defaultTheme.palette,
     default: {
-      background: colors.black,
-      backgroundLight: colors.gray7,
-      text: colors.white,
-      textLight: colors.gray3,
-      textInverted: colors.black,
-      link: colors.blue3,
-      border: colors.gray7,
-      borderDark: colors.gray6,
-      icon: colors.gray4,
+      background: darkPalette.black,
+      backgroundLight: darkPalette.contrast_50,
+      text: darkPalette.white,
+      textLight: darkPalette.contrast_700,
+      textInverted: darkPalette.black,
+      link: darkPalette.primary_500,
+      border: darkPalette.contrast_100,
+      borderDark: darkPalette.contrast_200,
+      icon: darkPalette.contrast_500,
 
       // non-standard
-      textVeryLight: colors.gray4,
-      replyLine: colors.gray5,
-      replyLineDot: colors.gray6,
-      unreadNotifBg: colors.blue7,
-      unreadNotifBorder: colors.blue6,
-      postCtrl: '#707489',
-      brandText: '#0085ff',
-      emptyStateIcon: colors.gray4,
-      borderLinkHover: colors.gray5,
+      textVeryLight: darkPalette.contrast_400,
+      replyLine: darkPalette.contrast_100,
+      replyLineDot: darkPalette.contrast_200,
+      unreadNotifBg: darkPalette.primary_975,
+      unreadNotifBorder: darkPalette.primary_900,
+      postCtrl: darkPalette.contrast_500,
+      brandText: darkPalette.primary_500,
+      emptyStateIcon: darkPalette.contrast_300,
+      borderLinkHover: darkPalette.contrast_300,
     },
     primary: {
       ...defaultTheme.palette.primary,
@@ -322,15 +324,15 @@ export const darkTheme: Theme = {
       textInverted: colors.green2,
     },
     inverted: {
-      background: colors.white,
-      backgroundLight: colors.gray2,
-      text: colors.black,
-      textLight: colors.gray5,
-      textInverted: colors.white,
-      link: colors.blue3,
-      border: colors.gray3,
-      borderDark: colors.gray4,
-      icon: colors.gray1,
+      background: lightPalette.white,
+      backgroundLight: lightPalette.contrast_50,
+      text: lightPalette.black,
+      textLight: lightPalette.contrast_700,
+      textInverted: lightPalette.white,
+      link: lightPalette.primary_500,
+      border: lightPalette.contrast_100,
+      borderDark: lightPalette.contrast_200,
+      icon: lightPalette.contrast_500,
     },
   },
 }