|
|
|
@ -2,7 +2,6 @@ import { |
|
|
|
|
View, |
|
|
|
|
Text, |
|
|
|
|
Pressable, |
|
|
|
|
Appearance, |
|
|
|
|
SafeAreaView, |
|
|
|
|
ScrollView, |
|
|
|
|
StyleSheet, |
|
|
|
@ -10,7 +9,7 @@ import { |
|
|
|
|
Dimensions, |
|
|
|
|
StatusBar, |
|
|
|
|
Image, |
|
|
|
|
mobile, |
|
|
|
|
Appearance |
|
|
|
|
} from "react-native"; |
|
|
|
|
import React from "react"; |
|
|
|
|
import { connect } from "react-redux"; |
|
|
|
@ -21,6 +20,7 @@ import { userFavorite } from "../../../../redux/actions"; |
|
|
|
|
//components
|
|
|
|
|
import Navbar from "../../../../components/Navbar"; |
|
|
|
|
import Empty from "../../../../components/Empty"; |
|
|
|
|
import Blur from "../../../../components/Blur"; |
|
|
|
|
|
|
|
|
|
//style
|
|
|
|
|
import tw from "tailwind-rn"; |
|
|
|
@ -33,7 +33,9 @@ import bookImage from "../../..//OrdersFollowUp/assets/b1.png"; |
|
|
|
|
const { height, width } = Dimensions.get("window"); |
|
|
|
|
const ios = Platform.OS === "ios"; |
|
|
|
|
|
|
|
|
|
const ProfileBookmark = ({ bookmarkList, getList }) => { |
|
|
|
|
const ProfileBookmark = ({ bookmarkList, getList, deleteItem, loading, mobile }) => { |
|
|
|
|
const colorScheme = Appearance.getColorScheme(); |
|
|
|
|
|
|
|
|
|
React.useEffect(() => { |
|
|
|
|
getList(); |
|
|
|
|
}, []); |
|
|
|
@ -57,7 +59,22 @@ const ProfileBookmark = ({ bookmarkList, getList }) => { |
|
|
|
|
back: true, |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
{bookmarkList?.length > 0 ? ( |
|
|
|
|
{loading && ( |
|
|
|
|
<View |
|
|
|
|
style={[ |
|
|
|
|
tw("absolute left-0 top-0 rounded-md overflow-hidden"), |
|
|
|
|
{ |
|
|
|
|
width: Dimensions.get("window").width, |
|
|
|
|
height: height, |
|
|
|
|
zIndex: 1, |
|
|
|
|
backgroundColor: Colors.theme1[colorScheme].white + "60", |
|
|
|
|
}, |
|
|
|
|
]} |
|
|
|
|
> |
|
|
|
|
<Blur /> |
|
|
|
|
</View> |
|
|
|
|
)} |
|
|
|
|
{bookmarkList.length > 0 ? ( |
|
|
|
|
<ScrollView |
|
|
|
|
contentContainerStyle={styles.contentContainerStyle} |
|
|
|
|
style={styles.container} |
|
|
|
@ -65,7 +82,12 @@ const ProfileBookmark = ({ bookmarkList, getList }) => { |
|
|
|
|
<View style={tw("w-full mt-2 px-4")}> |
|
|
|
|
<View style={tw("p-0 m-0 flex")}> |
|
|
|
|
{bookmarkList?.map((bookmark, index) => ( |
|
|
|
|
<Bookmark key={index} bookmark={bookmark} /> |
|
|
|
|
<Bookmark |
|
|
|
|
key={index} |
|
|
|
|
bookmark={bookmark} |
|
|
|
|
deleteItem={deleteItem} |
|
|
|
|
mobile={mobile} |
|
|
|
|
/> |
|
|
|
|
))} |
|
|
|
|
</View> |
|
|
|
|
</View> |
|
|
|
@ -77,13 +99,13 @@ const ProfileBookmark = ({ bookmarkList, getList }) => { |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const Bookmark = ({ bookmark }) => { |
|
|
|
|
const Bookmark = ({ bookmark, deleteItem, mobile }) => { |
|
|
|
|
const colorScheme = Appearance.getColorScheme(); |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<Pressable |
|
|
|
|
style={[ |
|
|
|
|
tw("flex flex-row-reverse rounded-md justify-between px-3.5 py-2 bg-red-100"), |
|
|
|
|
tw("flex flex-row-reverse rounded-md justify-between px-3.5 py-2 mb-4"), |
|
|
|
|
{ |
|
|
|
|
borderWidth: 1.5, |
|
|
|
|
borderColor: Colors.theme1[colorScheme].greenCF, |
|
|
|
@ -92,7 +114,7 @@ const Bookmark = ({ bookmark }) => { |
|
|
|
|
> |
|
|
|
|
<View style={tw("flex flex-row-reverse items-end")}> |
|
|
|
|
<Image |
|
|
|
|
source={bookmark.image} |
|
|
|
|
source={bookmark?.image} |
|
|
|
|
style={{ |
|
|
|
|
width: mobile ? width / 5 : width / 7, |
|
|
|
|
minWidth: 80, |
|
|
|
@ -118,30 +140,32 @@ const Bookmark = ({ bookmark }) => { |
|
|
|
|
color: Colors.theme1[colorScheme].gray20, |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
{bookmark.grade} |
|
|
|
|
{bookmark?.grade} |
|
|
|
|
</Text> |
|
|
|
|
</View> |
|
|
|
|
</View> |
|
|
|
|
<Svg |
|
|
|
|
data-name="vuesax/linear/archive-add" |
|
|
|
|
xmlns="http://www.w3.org/2000/svg" |
|
|
|
|
width={29.778} |
|
|
|
|
height={29.778} |
|
|
|
|
> |
|
|
|
|
<Path |
|
|
|
|
d="M20.869 2.482H8.908a4.8 4.8 0 0 0-4.789 4.789v17.483c0 2.233 1.6 3.176 3.561 2.1l6.055-3.362a2.628 2.628 0 0 1 2.32 0l6.055 3.362c1.96 1.092 3.561.149 3.561-2.1V7.271a4.819 4.819 0 0 0-4.802-4.789Z" |
|
|
|
|
fill="#37a865" |
|
|
|
|
/> |
|
|
|
|
<Path |
|
|
|
|
data-name="Vector" |
|
|
|
|
d="M17.987 13.214h-6.2" |
|
|
|
|
fill="none" |
|
|
|
|
stroke="#fff" |
|
|
|
|
strokeLinecap="round" |
|
|
|
|
strokeLinejoin="round" |
|
|
|
|
strokeWidth={1.5} |
|
|
|
|
/> |
|
|
|
|
</Svg> |
|
|
|
|
<Pressable onPress={() => deleteItem({ id: bookmark.id })}> |
|
|
|
|
<Svg |
|
|
|
|
data-name="vuesax/linear/archive-add" |
|
|
|
|
xmlns="http://www.w3.org/2000/svg" |
|
|
|
|
width={29.778} |
|
|
|
|
height={29.778} |
|
|
|
|
> |
|
|
|
|
<Path |
|
|
|
|
d="M20.869 2.482H8.908a4.8 4.8 0 0 0-4.789 4.789v17.483c0 2.233 1.6 3.176 3.561 2.1l6.055-3.362a2.628 2.628 0 0 1 2.32 0l6.055 3.362c1.96 1.092 3.561.149 3.561-2.1V7.271a4.819 4.819 0 0 0-4.802-4.789Z" |
|
|
|
|
fill="#37a865" |
|
|
|
|
/> |
|
|
|
|
<Path |
|
|
|
|
data-name="Vector" |
|
|
|
|
d="M17.987 13.214h-6.2" |
|
|
|
|
fill="none" |
|
|
|
|
stroke="#fff" |
|
|
|
|
strokeLinecap="round" |
|
|
|
|
strokeLinejoin="round" |
|
|
|
|
strokeWidth={1.5} |
|
|
|
|
/> |
|
|
|
|
</Svg> |
|
|
|
|
</Pressable> |
|
|
|
|
</Pressable> |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
@ -150,10 +174,12 @@ const mapStateToProps = (state) => ({ |
|
|
|
|
loading: state.userFactor.loading, |
|
|
|
|
mobile: state.publicApi.mobile, |
|
|
|
|
bookmarkList: state.userFavorite.list, |
|
|
|
|
loading: state.userFavorite.loading, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const mapDispatchToProps = { |
|
|
|
|
getList: userFavorite.list, |
|
|
|
|
deleteItem: userFavorite.del, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(ProfileBookmark); |
|
|
|
|