Skip to content

Commit 24704e3

Browse files
authored
feat(feed): replace chronological filter pills with filter button (#14315)
1 parent 0ad7eb6 commit 24704e3

4 files changed

Lines changed: 27 additions & 49 deletions

File tree

packages/web/src/components/artist-recommendations/ArtistRecommendations.tsx

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -115,24 +115,14 @@ export const ArtistRecommendations = forwardRef<
115115
// Follow/Unfollow listeners
116116
const handleFollowAll = useCallback(() => {
117117
suggestedArtists.forEach((a) => {
118-
dispatch(
119-
socialActions.followUser(
120-
a.user_id,
121-
FollowSource.USER_LIST
122-
)
123-
)
118+
dispatch(socialActions.followUser(a.user_id, FollowSource.USER_LIST))
124119
})
125120
setHasFollowedAll(true)
126121
}, [dispatch, suggestedArtists])
127122

128123
const handleUnfollowAll = useCallback(() => {
129124
suggestedArtists.forEach((a) => {
130-
dispatch(
131-
socialActions.unfollowUser(
132-
a.user_id,
133-
FollowSource.USER_LIST
134-
)
135-
)
125+
dispatch(socialActions.unfollowUser(a.user_id, FollowSource.USER_LIST))
136126
})
137127
setHasFollowedAll(false)
138128
}, [dispatch, suggestedArtists])
Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { ChangeEvent, useCallback } from 'react'
1+
import { useCallback } from 'react'
22

33
import { FeedFilter } from '@audius/common/models'
4-
import { Flex, SelectablePill } from '@audius/harmony'
4+
import { FilterButton } from '@audius/harmony'
55

66
type FeedFiltersProps = {
77
currentFilter: FeedFilter
@@ -14,42 +14,30 @@ const messages = {
1414
reposts: 'Reposts'
1515
}
1616

17-
const filterToLabel: Record<FeedFilter, string> = {
18-
[FeedFilter.ALL]: messages.allPosts,
19-
[FeedFilter.ORIGINAL]: messages.originalPosts,
20-
[FeedFilter.REPOST]: messages.reposts
21-
}
22-
23-
const filters: FeedFilter[] = [
24-
FeedFilter.ALL,
25-
FeedFilter.ORIGINAL,
26-
FeedFilter.REPOST
17+
const filterOptions = [
18+
{ label: messages.allPosts, value: FeedFilter.ALL },
19+
{ label: messages.originalPosts, value: FeedFilter.ORIGINAL },
20+
{ label: messages.reposts, value: FeedFilter.REPOST }
2721
]
2822

2923
export const FeedFilters = ({
3024
currentFilter,
3125
onSelectFilter
3226
}: FeedFiltersProps) => {
3327
const handleChange = useCallback(
34-
(e: ChangeEvent<HTMLInputElement>) => {
35-
onSelectFilter(e.target.value as FeedFilter)
28+
(value: string) => {
29+
onSelectFilter(value as FeedFilter)
3630
},
3731
[onSelectFilter]
3832
)
3933

4034
return (
41-
<Flex gap='s' role='radiogroup' onChange={handleChange} pb='l'>
42-
{filters.map((filter) => (
43-
<SelectablePill
44-
name='feed-filter'
45-
key={filter}
46-
type='radio'
47-
value={filter}
48-
label={filterToLabel[filter]}
49-
isSelected={currentFilter === filter}
50-
size='small'
51-
/>
52-
))}
53-
</Flex>
35+
<FilterButton
36+
label={messages.allPosts}
37+
value={currentFilter}
38+
variant='replaceLabel'
39+
onChange={handleChange}
40+
options={filterOptions}
41+
/>
5442
)
5543
}

packages/web/src/pages/feed-page/components/desktop/FeedPageContent.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,15 @@ const FeedPageContent = ({ containerRef }: FeedPageContentProps) => {
114114
icon={IconFeed}
115115
primary={messages.feedHeaderTitle}
116116
rightDecorator={
117-
<FeedTabs currentTab={feedTab} onSelectTab={onSelectTab} />
118-
}
119-
bottomBar={
120-
isForYou ? null : (
121-
<FeedFilters
122-
currentFilter={feedFilter}
123-
onSelectFilter={onSelectFilter}
124-
/>
125-
)
117+
<Flex gap='s' alignItems='center'>
118+
<FeedTabs currentTab={feedTab} onSelectTab={onSelectTab} />
119+
{isForYou ? null : (
120+
<FeedFilters
121+
currentFilter={feedFilter}
122+
onSelectFilter={onSelectFilter}
123+
/>
124+
)}
125+
</Flex>
126126
}
127127
/>
128128
)

packages/web/src/pages/feed-page/components/mobile/FeedPageContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ const FeedPageMobileContent = ({
113113
useEffect(() => {
114114
setHeader(
115115
<Header title={messages.title} className={styles.header}>
116-
<Flex direction='column' gap='s' alignItems='center'>
116+
<Flex gap='s' alignItems='center' justifyContent='center'>
117117
<FeedTabs currentTab={feedTab} onSelectTab={handleSelectTab} />
118118
{isForYou ? null : (
119119
<FeedFilters

0 commit comments

Comments
 (0)