diff --git a/assets/icons/dotGrid1x3Horizontal_stroke2_corner2_rounded.svg b/assets/icons/dotGrid1x3Horizontal_stroke2_corner2_rounded.svg
new file mode 100644
index 0000000000..c3b456b100
--- /dev/null
+++ b/assets/icons/dotGrid1x3Horizontal_stroke2_corner2_rounded.svg
@@ -0,0 +1 @@
+
diff --git a/src/components/Link.tsx b/src/components/Link.tsx
index ff72a08cec..00e6a56f42 100644
--- a/src/components/Link.tsx
+++ b/src/components/Link.tsx
@@ -228,6 +228,7 @@ export function InlineLink({
onPress: outerOnPress,
download,
selectable,
+ label,
...rest
}: InlineLinkProps) {
const t = useTheme()
@@ -255,7 +256,8 @@ export function InlineLink({
return (
void
@@ -148,7 +153,7 @@ export function ProfileFeedScreenInner({
feedInfo: FeedSourceFeedInfo
}) {
const {_} = useLingui()
- const pal = usePalette('default')
+ const t = useTheme()
const {hasSession, currentAccount} = useSession()
const {openModal} = useModalControls()
const {openComposer} = useComposerControls()
@@ -200,9 +205,11 @@ export function ProfileFeedScreenInner({
if (isSaved) {
await removeFeed({uri: feedInfo.uri})
resetRemoveFeed()
+ Toast.show(_(msg`Removed from your feeds`))
} else {
await saveFeed({uri: feedInfo.uri})
resetSaveFeed()
+ Toast.show(_(msg`Saved to your feeds`))
}
} catch (err) {
Toast.show(
@@ -263,130 +270,132 @@ export function ProfileFeedScreenInner({
[feedSectionRef],
)
- // render
- // =
-
- const dropdownItems: DropdownItem[] = React.useMemo(() => {
- return [
- hasSession && {
- testID: 'feedHeaderDropdownToggleSavedBtn',
- label: isSaved ? _(msg`Remove from my feeds`) : _(msg`Add to my feeds`),
- onPress: isSavePending || isRemovePending ? undefined : onToggleSaved,
- icon: isSaved
- ? {
- ios: {
- name: 'trash',
- },
- android: 'ic_delete',
- web: ['far', 'trash-can'],
- }
- : {
- ios: {
- name: 'plus',
- },
- android: '',
- web: 'plus',
- },
- },
- hasSession && {
- testID: 'feedHeaderDropdownReportBtn',
- label: _(msg`Report feed`),
- onPress: onPressReport,
- icon: {
- ios: {
- name: 'exclamationmark.triangle',
- },
- android: 'ic_menu_report_image',
- web: 'circle-exclamation',
- },
- },
- {
- testID: 'feedHeaderDropdownShareBtn',
- label: _(msg`Share feed`),
- onPress: onPressShare,
- icon: {
- ios: {
- name: 'square.and.arrow.up',
- },
- android: 'ic_menu_share',
- web: 'share',
- },
- },
- ].filter(Boolean) as DropdownItem[]
- }, [
- hasSession,
- onToggleSaved,
- onPressReport,
- onPressShare,
- isSaved,
- isSavePending,
- isRemovePending,
- _,
- ])
-
const renderHeader = useCallback(() => {
return (
-
- {feedInfo && hasSession && (
- <>
-
-
- >
- )}
-
-
-
+ <>
+
+
+ {feedInfo && hasSession && (
+
+
+ {isPinned ? _(msg`Unpin`) : _(msg`Pin to Home`)}
+
+
+ )}
+
+
+ {({props, state}) => {
+ return (
+
+
+
+ )
+ }}
+
+
+
+
+ {hasSession && (
+ <>
+
+
+ {isSaved
+ ? _(msg`Remove from my feeds`)
+ : _(msg`Save to my feeds`)}
+
+
+
+
+
+ {_(msg`Report feed`)}
+
+
+ >
+ )}
+
+
+ {_(msg`Share feed`)}
+
+
+
+
+
-
-
+
+
+ >
)
}, [
_,
hasSession,
- pal,
feedInfo,
isPinned,
onTogglePinned,
onToggleSaved,
- dropdownItems,
currentAccount?.did,
isPinPending,
isRemovePending,
isSavePending,
isSaved,
isUnpinPending,
+ onPressReport,
+ onPressShare,
+ t,
])
return (
@@ -405,18 +414,6 @@ export function ProfileFeedScreenInner({
isFocused={isScreenFocused && isFocused}
/>
)}
- {({headerHeight, scrollElRef}) => (
-
- }
- isOwner={feedInfo.creatorDid === currentAccount?.did}
- />
- )}
{hasSession && (
- isOwner: boolean
}) {
+ const t = useTheme()
const pal = usePalette('default')
const {_} = useLingui()
- const scrollHandlers = useScrollHandlers()
- const onScroll = useAnimatedScrollHandler(scrollHandlers)
const [likeUri, setLikeUri] = React.useState(feedInfo.likeUri)
const {hasSession} = useSession()
const {track} = useAnalytics()
@@ -555,24 +545,8 @@ function AboutSection({
}, [likeUri, isLiked, feedInfo, likeFeed, unlikeFeed, track, _])
return (
-
-
+
+
{feedInfo.description ? (
No description
)}
-
-
- {typeof likeCount === 'number' && (
-
- )}
-
-
- {isOwner ? (
- Created by you
- ) : (
-
- Created by{' '}
-
-
- )}
-
-
+
+
+
+ {isLiked ? (
+
+ ) : (
+
+ )}
+
+ {typeof likeCount === 'number' && (
+
+ {_(msg`Liked by ${likeCount} ${pluralize(likeCount, 'user')}`)}
+
+ )}
+
+
)
}
@@ -647,4 +605,9 @@ const styles = StyleSheet.create({
paddingVertical: 14,
borderRadius: 6,
},
+ aboutSectionContainer: {
+ paddingVertical: 4,
+ paddingHorizontal: 16,
+ gap: 12,
+ },
})