Skip to content

Commit

Permalink
refactor(example): update
Browse files Browse the repository at this point in the history
  • Loading branch information
duguyihou committed Sep 1, 2024
1 parent ccae76c commit 78d29df
Show file tree
Hide file tree
Showing 17 changed files with 230 additions and 108 deletions.
36 changes: 23 additions & 13 deletions example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,20 @@ import ProcessingScreen from './screens/ProcessingScreen';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import HomeScreen from './screens/HomeScreen';
import { type HomeStackParamList, RouteName } from './screens/routes.type';
import SuccessScreen from './screens/SuccessScreen';
import FailureScreen from './screens/FailureScreen';
import ImageScreen from './screens/ImageScreen';
import UrlCacheScreen from './screens/UrlCacheScreen';
import DataCacheScreen from './screens/DataCacheScreen';
import SVGScreen from './screens/SVGScreen';
import GifScreen from './screens/GifScreen';
import SuccessScreen from './screens/events/SuccessScreen';
import FailureScreen from './screens/events/FailureScreen';
import ImageScreen from './screens/list/ImageScreen';
import UrlCacheScreen from './screens/list/UrlCacheScreen';
import DataCacheScreen from './screens/list/DataCacheScreen';
import SVGScreen from './screens/formats/SVGScreen';
import GifScreen from './screens/formats/GifScreen';
import PrefetchScreen from './screens/PrefetchScreen';
import PlaceholderScreen from './screens/PlaceholderScreen';
import ThumbhashScreen from './screens/placeholder/ThumbhashScreen';
import BlurhashScreen from './screens/placeholder/BlurhashScreen';
import LiveTextScreen from './screens/LiveTextScreen';
import APNGScreen from './screens/APNGScreen';
import DetailScreen from './screens/DetailScreen';
import APNGScreen from './screens/formats/APNGScreen';
import MemoryCacheKeyScreen from './screens/placeholder/MemoryCacheKeyScreen';
import MemoryCacheKeyPreviousScreen from './screens/placeholder/MemoryCacheKeyPreviousScreen';

const Stack = createNativeStackNavigator<HomeStackParamList>();

Expand All @@ -34,8 +36,17 @@ function App() {
</Stack.Group>
<Stack.Group>
<Stack.Screen
name={RouteName.Placeholder}
component={PlaceholderScreen}
name={RouteName.Thumbhash}
component={ThumbhashScreen}
/>
<Stack.Screen name={RouteName.Blurhash} component={BlurhashScreen} />
<Stack.Screen
name={RouteName.MemoryCacheKeyPrevious}
component={MemoryCacheKeyPreviousScreen}
/>
<Stack.Screen
name={RouteName.MemoryCacheKey}
component={MemoryCacheKeyScreen}
/>
</Stack.Group>
<Stack.Group>
Expand All @@ -44,7 +55,6 @@ function App() {
<Stack.Group>
<Stack.Screen name={RouteName.Success} component={SuccessScreen} />
<Stack.Screen name={RouteName.Failure} component={FailureScreen} />
<Stack.Screen name={RouteName.Detail} component={DetailScreen} />
</Stack.Group>
<Stack.Screen
name={RouteName.ImageProcessing}
Expand Down
38 changes: 4 additions & 34 deletions example/src/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ export const routesData = [
{
title: 'Placeholder',
data: [
{ name: 'thumbhash + blurhash', destination: RouteName.Placeholder },
{ name: 'thumbhash', destination: RouteName.Thumbhash },
{ name: 'blurhash', destination: RouteName.Blurhash },
{ name: 'memoryCacheKey', destination: RouteName.MemoryCacheKeyPrevious },
],
},
{
Expand Down Expand Up @@ -46,7 +48,7 @@ export const routesData = [
],
},
];
export const listScreenData = [
export const dataCachelistData = [
{
url: 'https://placedog.net/300/300?id=1',
blurhash: 'ULKKWp^+s,_300M{t7tR~XNHE2bI00xuWBRP',
Expand Down Expand Up @@ -770,23 +772,6 @@ export const prefetchData = [
},
];

export const placeholderData = [
{
title: 'thumbhash',
url: 'https://placedog.net/300/300?id=127',
placeholder: {
thumbhash: 'XDkKFwKgVndpiIikloh4Z4iGp/HMDKYI',
},
},
{
title: 'blurhash',
url: 'https://placedog.net/300/300?id=127',
placeholder: {
blurhash: 'KBHKzp00_N_19F-V00_2D%',
},
},
];

export const liveTextData = [
{
url: 'https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:ejihld4sywvvqwe67cdkn4jq/bafkreibcshvfvfi4suht32tcp4ds77y2yghtcig62byqyq3ot4abpsplhu@jpeg',
Expand All @@ -796,21 +781,6 @@ export const liveTextData = [
},
];

export const urlCacheData = [
{
title: 'urlCache',
uri: 'https://github.com/duguyihou/react-native-turbo-image/assets/9347790/7955aa00-0b53-44d1-88bd-9b5e320db21e',
blurhash: 'UiL;8D-;%Mxut7WCt7f6~qS5RjRijuazM|WB',
},
];
export const dataCacheData = [
{
title: 'dataCache',
uri: 'https://placedog.net/300/300?id=236',
blurhash: 'UELDlXjFE3^*00x^M|M{ve9Y%1Ri~VIVV@-p',
},
];

export const processingData = [
{
title: 'Original',
Expand Down
25 changes: 0 additions & 25 deletions example/src/screens/PlaceholderScreen.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Text, View, type NativeSyntheticEvent } from 'react-native';
import React, { useState } from 'react';
import Card from '../components/Card';
import Card from '../../components/Card';
import type { Failure, TaskState } from 'react-native-turbo-image';

type Information = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import {
Pressable,
StyleSheet,
Text,
View,
type NativeSyntheticEvent,
} from 'react-native';
import React, { useState } from 'react';
import Card from '../components/Card';
import Card from '../../components/Card';
import type { Success, TaskState } from 'react-native-turbo-image';
import { useNavigation } from '@react-navigation/native';
import { RouteName, type HomeStackNavigationProps } from './routes.type';

type Information = {
width: number;
Expand All @@ -24,7 +21,6 @@ const SuccessScreen = () => {
const handleSuccess = ({ nativeEvent }: NativeSyntheticEvent<Success>) => {
setInformation(nativeEvent);
};
const navigation = useNavigation<HomeStackNavigationProps>();

const handleStart = ({ nativeEvent }: NativeSyntheticEvent<TaskState>) => {
setStart(nativeEvent.state === 'running');
Expand All @@ -35,18 +31,14 @@ const SuccessScreen = () => {
}: NativeSyntheticEvent<TaskState>) => {
setCompletion(nativeEvent.state === 'completed');
};
const navigateToDetailScreen = () => {
navigation.navigate(RouteName.Detail, {
memoryCacheKey: 'https://placedog.net/100/100?id=121',
});
};

return (
<View style={styles.container}>
<Card
source={{
uri: 'https://placedog.net/100/100?id=121',
uri: 'https://placedog.net/300/300?id=121',
}}
style={{ width: 100, height: 100 }}
style={styles.image}
cachePolicy="dataCache"
onStart={handleStart}
onSuccess={handleSuccess}
Expand All @@ -61,9 +53,6 @@ const SuccessScreen = () => {
{information?.height && <Text>height: {information?.height}</Text>}
{information?.source && <Text>source: {information?.source}</Text>}
{completion && <Text>Complete at {Date()}</Text>}
<Pressable style={styles.button} onPress={navigateToDetailScreen}>
<Text style={styles.text}>Go to detail</Text>
</Pressable>
</View>
);
};
Expand All @@ -76,6 +65,10 @@ const styles = StyleSheet.create({
width: '100%',
alignItems: 'center',
},
image: {
width: 300,
height: 300,
},
button: {
marginHorizontal: 10,
padding: 10,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { apngData } from '../data';
import Card from '../components/Card';
import { apngData } from '../../data';
import Card from '../../components/Card';
import { FlatList } from 'react-native';

const APNGScreen = () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { gifData } from '../data';
import Card from '../components/Card';
import { gifData } from '../../data';
import Card from '../../components/Card';
import { FlatList } from 'react-native';

const GifScreen = () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { svgData } from '../data';
import Card from '../components/Card';
import { svgData } from '../../data';
import Card from '../../components/Card';

const SVGScreen = () => {
return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Dimensions, FlatList, StyleSheet } from 'react-native';
import TurboImage from 'react-native-turbo-image';
import React from 'react';
import { listScreenData } from '../data';
import { dataCachelistData } from '../../data';

const size = Dimensions.get('window').width / 3 - 2;
const DataCacheScreen = () => {
Expand All @@ -25,7 +25,7 @@ const DataCacheScreen = () => {
return (
<FlatList
keyExtractor={(item) => item.url}
data={listScreenData}
data={dataCachelistData}
numColumns={3}
getItemLayout={(_, index) => ({
length: size,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Dimensions, FlatList, Image, StyleSheet } from 'react-native';
import React from 'react';
import { listScreenData } from '../data';
import { dataCachelistData } from '../../data';

const size = Dimensions.get('window').width / 3 - 2;
const ImageScreen = () => {
Expand All @@ -14,7 +14,7 @@ const ImageScreen = () => {
return (
<FlatList
keyExtractor={(item) => item.url}
data={listScreenData}
data={dataCachelistData}
numColumns={3}
getItemLayout={(_, index) => ({
length: size,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Dimensions, FlatList, StyleSheet } from 'react-native';
import TurboImage from 'react-native-turbo-image';
import React from 'react';
import { urlCacheListData } from '../data';
import { urlCacheListData } from '../../data';

const size = Dimensions.get('window').width / 3 - 2;
const UrlCacheScreen = () => {
Expand Down
33 changes: 33 additions & 0 deletions example/src/screens/placeholder/BlurhashScreen.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from 'react';
import { StyleSheet, View } from 'react-native';
import TurboImage from 'react-native-turbo-image';

const BlurhashScreen = () => {
return (
<View style={styles.container}>
<TurboImage
style={styles.image}
source={{
uri: 'https://placedog.net/300/300?id=127',
}}
cachePolicy="dataCache"
placeholder={{
blurhash: 'KBHKzp00_N_19F-V00_2D%',
}}
/>
</View>
);
};

export default BlurhashScreen;

const styles = StyleSheet.create({
container: {
justifyContent: 'center',
alignItems: 'center',
},
image: {
width: 300,
height: 300,
},
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { Linking, Pressable, StyleSheet, Text, View } from 'react-native';
import React from 'react';
import TurboImage from 'react-native-turbo-image';
import { useRoute } from '@react-navigation/native';
import type { HomeRouteType, RouteName } from './routes.type';
import type { HomeRouteType, RouteName } from '../routes.type';

const DetailScreen = () => {
const {
params: { memoryCacheKey },
} = useRoute<HomeRouteType<RouteName.Detail>>();
} = useRoute<HomeRouteType<RouteName.MemoryCacheKey>>();

const handlePress = () => {
Linking.openURL(
Expand All @@ -17,7 +17,7 @@ const DetailScreen = () => {
return (
<View style={styles.container}>
<TurboImage
source={{ uri: 'https://placedog.net/400/400?id=121' }}
source={{ uri: 'https://placedog.net/400/400?id=127' }}
placeholder={{ memoryCacheKey }}
style={styles.image}
/>
Expand All @@ -43,10 +43,10 @@ const styles = StyleSheet.create({
height: 400,
},
text: {
fontSize: 18,
fontSize: 20,
},
link: {
fontSize: 18,
fontSize: 20,
color: 'blue',
},
});
Loading

0 comments on commit 78d29df

Please sign in to comment.