From 61e27603769f4361546042568520b4dfe1c16ba1 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 30 Aug 2023 19:08:24 +0800 Subject: [PATCH 01/12] Improve the layout of grid cards in the library --- .../patterns/LibraryCards/LibraryGridCard.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx b/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx index c67705c52..0ba2db164 100644 --- a/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx +++ b/packages/web/components/patterns/LibraryCards/LibraryGridCard.tsx @@ -142,7 +142,7 @@ const GridImage = (props: GridImageProps): JSX.Element => { {props.isLoading && ( @@ -150,7 +150,7 @@ const GridImage = (props: GridImageProps): JSX.Element => { {(props.readingProgress ?? 0) > 0 && !props.isLoading && ( @@ -159,14 +159,14 @@ const GridImage = (props: GridImageProps): JSX.Element => { ) : ( { return ( - + { {props.item.title} @@ -265,7 +265,7 @@ const LibraryGridCardContent = (props: LinkedItemCardProps): JSX.Element => { css={{ ...AuthorInfoStyle, mt: '5px', - mb: '20px', + mb: '15px', }} > {props.item.author} @@ -276,13 +276,13 @@ const LibraryGridCardContent = (props: LinkedItemCardProps): JSX.Element => { {sortedLabels(props.item.labels).map(({ name, color }, index) => ( From 879a9510ae7ebe4b48cc3ccaccc110bdc3ca9cba Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 30 Aug 2023 19:51:03 +0800 Subject: [PATCH 02/12] Increase padding on empty library messages --- packages/web/components/templates/homeFeed/EmptyLibrary.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx index 92e04e1da..7e342ef24 100644 --- a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx +++ b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx @@ -101,7 +101,8 @@ export const ErrorBox = (props: HelpMessageProps) => { fontFamily: '$inter', fontWeight: '500', color: '$thTextContrast', - padding: '10px', + py: '10px', + px: '15px', '@smDown': { width: '100%', }, From 0248902041f5e0b08be0734a5d9fcb97a584ae06 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 11:11:27 +0800 Subject: [PATCH 03/12] Update the empty state message for subscriptions --- packages/web/pages/settings/subscriptions.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/pages/settings/subscriptions.tsx b/packages/web/pages/settings/subscriptions.tsx index 2fc66fb1d..76b85b477 100644 --- a/packages/web/pages/settings/subscriptions.tsx +++ b/packages/web/pages/settings/subscriptions.tsx @@ -96,7 +96,7 @@ export default function SubscriptionsPage(): JSX.Element { }) ) : ( )} From aca3f387645eb3efdcaac820d606bf60a73e7571 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 11:37:46 +0800 Subject: [PATCH 04/12] Update test --- packages/api/test/resolvers/subscriptions.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/api/test/resolvers/subscriptions.test.ts b/packages/api/test/resolvers/subscriptions.test.ts index 4eb8cba6a..75a21ef77 100644 --- a/packages/api/test/resolvers/subscriptions.test.ts +++ b/packages/api/test/resolvers/subscriptions.test.ts @@ -201,10 +201,10 @@ describe('Subscriptions API', () => { } } ` - const user2 = await createTestUser('fakeUser2') + const user3 = await createTestUser('fakeUser3') try { await createTestSubscription( - user2, + user3, 'sub_other', undefined, SubscriptionStatus.Unsubscribed, @@ -222,7 +222,7 @@ describe('Subscriptions API', () => { })) ) } finally { - deleteTestUser(user2.id) + deleteTestUser(user3.id) } }) From c27ffc1ba215ea53aad371828aaa16640f4a5441 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 13:15:44 +0800 Subject: [PATCH 05/12] Make the list the default layout for new users --- .../web/components/templates/homeFeed/HomeFeedContainer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index 338e3e833..65c1bb689 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -938,7 +938,7 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element { const { viewerData } = useGetViewerQuery() const [layout, setLayout] = usePersistedState({ key: 'libraryLayout', - initialValue: 'GRID_LAYOUT', + initialValue: 'LIST_LAYOUT', }) const updateLayout = useCallback( From f6bfdf6a936ea9e8969ac4dc0b6d85d15b438eb3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 12:19:36 +0800 Subject: [PATCH 06/12] Fixed scoped query for RSS items --- .../templates/homeFeed/LibraryFilterMenu.tsx | 4 +--- .../queries/useGetSubscriptionsQuery.tsx | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx index a363f9a54..d1bd07c03 100644 --- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx +++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx @@ -2,7 +2,7 @@ import { ReactNode, useMemo } from 'react' import { StyledText } from '../../elements/StyledText' import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' import { Button } from '../../elements/Button' -import { CaretRight, Circle } from 'phosphor-react' +import { Circle } from 'phosphor-react' import { useGetSubscriptionsQuery } from '../../../lib/networking/queries/useGetSubscriptionsQuery' import { useGetLabelsQuery } from '../../../lib/networking/queries/useGetLabelsQuery' import { Label } from '../../../lib/networking/fragments/labelFragment' @@ -11,9 +11,7 @@ import { useRegisterActions } from 'kbar' import { LogoBox } from '../../elements/LogoBox' import { usePersistedState } from '../../../lib/hooks/usePersistedState' import { ToggleCaretDownIcon } from '../../elements/icons/ToggleCaretDownIcon' -import { ToggleCaretLeftIcon } from '../../elements/icons/ToggleCaretLeftIcon' import Link from 'next/link' -import { ArrowRightIcon } from '../../elements/icons/ArrowRightIcon' import { ToggleCaretRightIcon } from '../../elements/icons/ToggleCaretRightIcon' export const LIBRARY_LEFT_MENU_WIDTH = '233px' diff --git a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx index f5cc5051a..8e076aeed 100644 --- a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request' import useSWR from 'swr' -import { publicGqlFetcher } from '../networkHelpers' +import { gqlFetcher, makeGqlFetcher, publicGqlFetcher } from '../networkHelpers' export type SubscriptionStatus = 'ACTIVE' | 'DELETED' | 'UNSUBSCRIBED' @@ -39,11 +39,12 @@ type SubscriptionsData = { } export function useGetSubscriptionsQuery( + type: SubscriptionType | undefined, sortBy = 'UPDATED_TIME' ): SubscriptionsQueryResponse { const query = gql` - query GetSubscriptions { - subscriptions(sort: { by: ${sortBy} }) { + query GetSubscriptions($type: SubscriptionType, $sort: SortParams) { + subscriptions(type: $type, sort: $sort) { ... on SubscriptionsSuccess { subscriptions { id @@ -67,9 +68,17 @@ export function useGetSubscriptionsQuery( } ` - const { data, mutate, isValidating } = useSWR(query, publicGqlFetcher) - try { + const { data, mutate, isValidating } = useSWR( + query, + makeGqlFetcher({ + type, + sort: { + by: sortBy, + }, + }) + ) + if (data) { const result = data as SubscriptionsResponseData const subscriptions = result.subscriptions.subscriptions as Subscription[] From a9729e06c0fe414751ac1cfb89a2ce1d55fb8288 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 12:27:06 +0800 Subject: [PATCH 07/12] Fix sort order on Oldest First, default subs to all --- .../web/components/templates/homeFeed/LibraryFilterMenu.tsx | 2 +- .../web/lib/networking/queries/useGetSubscriptionsQuery.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx index d1bd07c03..666f2741e 100644 --- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx +++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx @@ -107,7 +107,7 @@ function SavedSearches(props: LibraryFilterMenuProps): JSX.Element { }, { name: 'Oldest First', - term: 'sort:saved-desc', + term: 'sort:saved-asc', }, { name: 'Files', diff --git a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx index 8e076aeed..9fd959e60 100644 --- a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx @@ -39,7 +39,7 @@ type SubscriptionsData = { } export function useGetSubscriptionsQuery( - type: SubscriptionType | undefined, + type: SubscriptionType | undefined = undefined, sortBy = 'UPDATED_TIME' ): SubscriptionsQueryResponse { const query = gql` From 2e0f57446ffe9ee790e36cac13c12f1db2d16247 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 12:39:30 +0800 Subject: [PATCH 08/12] Fix useSWR usage --- .../queries/useGetSubscriptionsQuery.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx index 9fd959e60..135145a27 100644 --- a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx @@ -1,6 +1,6 @@ import { gql } from 'graphql-request' import useSWR from 'swr' -import { gqlFetcher, makeGqlFetcher, publicGqlFetcher } from '../networkHelpers' +import { makeGqlFetcher } from '../networkHelpers' export type SubscriptionStatus = 'ACTIVE' | 'DELETED' | 'UNSUBSCRIBED' @@ -68,17 +68,17 @@ export function useGetSubscriptionsQuery( } ` - try { - const { data, mutate, isValidating } = useSWR( - query, - makeGqlFetcher({ - type, - sort: { - by: sortBy, - }, - }) - ) + const { data, mutate, isValidating } = useSWR( + query, + makeGqlFetcher({ + type, + sort: { + by: sortBy, + }, + }) + ) + try { if (data) { const result = data as SubscriptionsResponseData const subscriptions = result.subscriptions.subscriptions as Subscription[] From f2fa35c42dfce227647a5ff1f197a16a4d669789 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 12:54:55 +0800 Subject: [PATCH 09/12] Use variables in subscriptions SWR cache key --- .../queries/useGetSubscriptionsQuery.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx index 135145a27..89bfccf99 100644 --- a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx @@ -68,14 +68,15 @@ export function useGetSubscriptionsQuery( } ` + const variables = { + type, + sort: { + by: sortBy, + }, + } const { data, mutate, isValidating } = useSWR( - query, - makeGqlFetcher({ - type, - sort: { - by: sortBy, - }, - }) + [query, variables], + makeGqlFetcher(variables) ) try { From b4d97c0ede34da8a7e4735d199524d76ed48c868 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 14:04:51 +0800 Subject: [PATCH 10/12] Remove section on multi select from reader keyboard commands --- .../web/components/templates/KeyboardShortcutListModal.tsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/web/components/templates/KeyboardShortcutListModal.tsx b/packages/web/components/templates/KeyboardShortcutListModal.tsx index 3285446d8..79e90b765 100644 --- a/packages/web/components/templates/KeyboardShortcutListModal.tsx +++ b/packages/web/components/templates/KeyboardShortcutListModal.tsx @@ -76,12 +76,6 @@ const readerCommands = () => { shortcutKeyDescription: 'f', callback: () => {}, }, - { - shortcutKeys: ['escape'], - actionDescription: 'End multi select', - shortcutKeyDescription: 'Escape', - callback: () => {}, - }, { actionDescription: 'Return to library', shortcutKeys: ['u'], From 92e654f311d561d10706ac1c394c81bc14a858d1 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 14:07:24 +0800 Subject: [PATCH 11/12] Fix docs link --- packages/web/pages/settings/feeds/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/pages/settings/feeds/index.tsx b/packages/web/pages/settings/feeds/index.tsx index c94a19b0e..cbe310e8c 100644 --- a/packages/web/pages/settings/feeds/index.tsx +++ b/packages/web/pages/settings/feeds/index.tsx @@ -90,7 +90,7 @@ export default function Rss(): JSX.Element { return ( { From a2f339ceed9e10d55e46541655e7f935467be626 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 1 Sep 2023 14:15:48 +0800 Subject: [PATCH 12/12] Fix double registration of navigation commands --- packages/web/lib/keyboardShortcuts/navigationShortcuts.ts | 4 +++- packages/web/pages/[username]/[slug]/index.tsx | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts b/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts index a8f1af0c8..d49b72f61 100644 --- a/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts +++ b/packages/web/lib/keyboardShortcuts/navigationShortcuts.ts @@ -15,7 +15,9 @@ export function navigationCommands( shortcutKeys: ['b'], actionDescription: 'Go back', shortcutKeyDescription: 'b', - callback: () => router?.back(), + callback: () => { + router?.back() + }, }, ] } diff --git a/packages/web/pages/[username]/[slug]/index.tsx b/packages/web/pages/[username]/[slug]/index.tsx index 0bad57608..533bea5db 100644 --- a/packages/web/pages/[username]/[slug]/index.tsx +++ b/packages/web/pages/[username]/[slug]/index.tsx @@ -79,8 +79,6 @@ export default function Home(): JSX.Element { }) }, [articleData?.article.article]) - useKeyboardShortcuts(navigationCommands(router)) - const actionHandler = useCallback( async (action: string, arg?: unknown) => { switch (action) {