Skip to content

Commit b9865bc

Browse files
[saved] Implement saved story button (#79)
* Implemented save story button * Move story image to assets * Add save story to preview card, one home screen viewing bug * Add pubsub to sync preview and content cards * Bug fixes * Refactor * Create SavedStoryButton componenet * Remove unused imports * Fix type errors --------- Co-authored-by: Aditya Pawar <[email protected]> Co-authored-by: Aditya Pawar <[email protected]>
1 parent 860d346 commit b9865bc

File tree

18 files changed

+209
-40
lines changed

18 files changed

+209
-40
lines changed
File renamed without changes.

assets/saved_story.png

12.6 KB
Loading

package-lock.json

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@
6868
"react-native-vector-icons": "^10.0.2",
6969
"react-scroll-to-top": "^3.0.0",
7070
"use-debounce": "^10.0.0",
71-
"validator": "^13.11.0"
71+
"validator": "^13.11.0",
72+
"expo-image": "~1.3.5"
7273
},
7374
"devDependencies": {
7475
"@babel/core": "^7.20.0",

src/app/(tabs)/author/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ function AuthorScreen() {
122122
{authorStoryPreview?.map(story => (
123123
<PreviewCard
124124
key={story.title}
125+
storyId={story.id}
125126
title={story.title}
126127
image={story.featured_media}
127128
author={story.author_name}

src/app/(tabs)/genre/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ function GenreScreen() {
272272
renderItem={({ item }) => (
273273
<PreviewCard
274274
key={item.id}
275+
storyId={item.id}
275276
tags={item.genre_medium.concat(item.tone).concat(item.topic)}
276277
author={item.author_name}
277278
image={item.featured_media}

src/app/(tabs)/home/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ function HomeScreen() {
9696
{featuredStories.map(story => (
9797
<PreviewCard
9898
key={story.id}
99+
storyId={story.id}
99100
title={story.title}
100101
image={story.featured_media}
101102
author={story.author_name}
@@ -132,6 +133,7 @@ function HomeScreen() {
132133
title={story.title}
133134
author={story.author_name}
134135
authorImage={story.author_image}
136+
storyId={story.id}
135137
pressFunction={() =>
136138
router.push({
137139
pathname: '/story',
@@ -161,6 +163,7 @@ function HomeScreen() {
161163
title={story.title}
162164
author={story.author_name}
163165
authorImage={story.author_image}
166+
storyId={story.id}
164167
pressFunction={() =>
165168
router.push({
166169
pathname: '/story',

src/app/(tabs)/search/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ function SearchScreen() {
306306
{recentlyViewed.map(item => (
307307
<PreviewCard
308308
key={item.title}
309+
storyId={item.id}
309310
title={item.title}
310311
image={item.featured_media}
311312
author={item.author_name}
@@ -395,7 +396,8 @@ function SearchScreen() {
395396
contentContainerStyle={styles.contentCotainerStories}
396397
renderItem={({ item }) => (
397398
<PreviewCard
398-
key={item.title}
399+
key={item.id}
400+
storyId={item.id}
399401
title={item.title}
400402
image={item.featured_media}
401403
author={item.author_name}

src/app/_layout.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@ import { Stack } from 'expo-router';
22
import { SafeAreaProvider } from 'react-native-safe-area-context';
33

44
import { AuthContextProvider } from '../utils/AuthContext';
5+
import { BooleanPubSubProvider } from '../utils/PubSubContext';
56
import ToastComponent from '../components/Toast/Toast';
67
import { Keyboard, TouchableWithoutFeedback } from 'react-native';
78

89
function StackLayout() {
910
return (
1011
<SafeAreaProvider>
1112
<AuthContextProvider>
12-
<Stack>
13-
<Stack.Screen name="index" options={{ headerShown: false }} />
14-
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
15-
<Stack.Screen name="auth" options={{ headerShown: false }} />
16-
</Stack>
13+
<BooleanPubSubProvider>
14+
<Stack>
15+
<Stack.Screen name="index" options={{ headerShown: false }} />
16+
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
17+
<Stack.Screen name="auth" options={{ headerShown: false }} />
18+
</Stack>
19+
</BooleanPubSubProvider>
1720
</AuthContextProvider>
1821
<ToastComponent />
1922
</SafeAreaProvider>

src/components/AuthorCard/AuthorCard.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import { Image, Pressable, Text, View } from 'react-native';
2-
1+
import { Image, Text, View } from 'react-native';
32
import styles from './styles';
4-
import globalStyles from '../../styles/globalStyles';
53

64
type AuthorCardProps = {
75
name: string;

0 commit comments

Comments
 (0)