|
@@ -75,38 +75,38 @@ const EventsScreen = () => {
|
|
const navigation = useNavigation();
|
|
const navigation = useNavigation();
|
|
const [searchQuery, setSearchQuery] = useState('');
|
|
const [searchQuery, setSearchQuery] = useState('');
|
|
const [events, setEvents] = useState<PostGetEventsListReturn>({
|
|
const [events, setEvents] = useState<PostGetEventsListReturn>({
|
|
- data: [],
|
|
|
|
|
|
+ local_meetings: [],
|
|
nm: [],
|
|
nm: [],
|
|
- community: []
|
|
|
|
|
|
+ shared_trips: []
|
|
} as never);
|
|
} as never);
|
|
const [pastEvents, setPastEvents] = useState<PostGetEventsListReturn>({
|
|
const [pastEvents, setPastEvents] = useState<PostGetEventsListReturn>({
|
|
- data: [],
|
|
|
|
|
|
+ local_meetings: [],
|
|
nm: [],
|
|
nm: [],
|
|
- community: []
|
|
|
|
|
|
+ shared_tripsv: []
|
|
} as never);
|
|
} as never);
|
|
const [filteredEvents, setFilteredEvents] = useState<PostGetEventsListReturn>({
|
|
const [filteredEvents, setFilteredEvents] = useState<PostGetEventsListReturn>({
|
|
- data: [],
|
|
|
|
|
|
+ local_meetings: [],
|
|
nm: [],
|
|
nm: [],
|
|
- community: []
|
|
|
|
|
|
+ shared_trips: []
|
|
} as never);
|
|
} as never);
|
|
const [filteredPastEvents, setFilteredPastEvents] = useState<PostGetEventsListReturn>({
|
|
const [filteredPastEvents, setFilteredPastEvents] = useState<PostGetEventsListReturn>({
|
|
- data: [],
|
|
|
|
|
|
+ local_meetings: [],
|
|
nm: [],
|
|
nm: [],
|
|
- community: []
|
|
|
|
|
|
+ shared_trips: []
|
|
} as never);
|
|
} as never);
|
|
const [tooltipStates, setTooltipStates] = useState<Record<number, boolean>>({});
|
|
const [tooltipStates, setTooltipStates] = useState<Record<number, boolean>>({});
|
|
const date = new Date();
|
|
const date = new Date();
|
|
|
|
|
|
const [expandedStates, setExpandedStates] = useState<Record<string, boolean>>({
|
|
const [expandedStates, setExpandedStates] = useState<Record<string, boolean>>({
|
|
nm: false,
|
|
nm: false,
|
|
- community: false,
|
|
|
|
- data: false
|
|
|
|
|
|
+ shared_trips: false,
|
|
|
|
+ local_meetings: false
|
|
});
|
|
});
|
|
|
|
|
|
const scrollViewRefs = useRef<Record<string, FlashList<SingleEvent> | null>>({
|
|
const scrollViewRefs = useRef<Record<string, FlashList<SingleEvent> | null>>({
|
|
nm: null,
|
|
nm: null,
|
|
- community: null,
|
|
|
|
- data: null
|
|
|
|
|
|
+ shared_trips: null,
|
|
|
|
+ local_meetings: null
|
|
});
|
|
});
|
|
const sectionRef = useRef<View>(null);
|
|
const sectionRef = useRef<View>(null);
|
|
|
|
|
|
@@ -116,10 +116,10 @@ const EventsScreen = () => {
|
|
const buttonRef = useRef<TouchableOpacity>(null);
|
|
const buttonRef = useRef<TouchableOpacity>(null);
|
|
|
|
|
|
const [index, setIndex] = useState<number>(0);
|
|
const [index, setIndex] = useState<number>(0);
|
|
- const [routes] = useState<{ key: 'nm' | 'community' | 'data'; title: string }[]>([
|
|
|
|
|
|
+ const [routes] = useState<{ key: 'nm' | 'shared_trips' | 'local_meetings'; title: string }[]>([
|
|
{ key: 'nm', title: 'NomadMania Events' },
|
|
{ key: 'nm', title: 'NomadMania Events' },
|
|
- { key: 'community', title: 'Community Events' },
|
|
|
|
- { key: 'data', title: 'All Events' }
|
|
|
|
|
|
+ { key: 'shared_trips', title: 'Shared Trips' },
|
|
|
|
+ { key: 'local_meetings', title: 'Local Meetings' }
|
|
]);
|
|
]);
|
|
|
|
|
|
const SEARCH_CONTAINER_HEIGHT = 44;
|
|
const SEARCH_CONTAINER_HEIGHT = 44;
|
|
@@ -214,14 +214,14 @@ const EventsScreen = () => {
|
|
};
|
|
};
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
- if (data && data.data) {
|
|
|
|
|
|
+ if (data && data.nm) {
|
|
setEvents(data);
|
|
setEvents(data);
|
|
setFilteredEvents(data);
|
|
setFilteredEvents(data);
|
|
}
|
|
}
|
|
}, [data]);
|
|
}, [data]);
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
- if (pastData && pastData.data) {
|
|
|
|
|
|
+ if (pastData && pastData.nm) {
|
|
setPastEvents(pastData);
|
|
setPastEvents(pastData);
|
|
setFilteredPastEvents(pastData);
|
|
setFilteredPastEvents(pastData);
|
|
}
|
|
}
|
|
@@ -236,35 +236,41 @@ const EventsScreen = () => {
|
|
const handleSearch = (text: string) => {
|
|
const handleSearch = (text: string) => {
|
|
if (text) {
|
|
if (text) {
|
|
const searchData =
|
|
const searchData =
|
|
- (index === 0 ? events.nm : index === 1 ? events.community : events.data).filter(
|
|
|
|
- (item: any) => {
|
|
|
|
- const itemData = item.name ? item.name.toLowerCase() : ''.toLowerCase();
|
|
|
|
- const textData = text.toLowerCase();
|
|
|
|
- return itemData.indexOf(textData) > -1;
|
|
|
|
- }
|
|
|
|
- ) ?? [];
|
|
|
|
|
|
+ (index === 0
|
|
|
|
+ ? events.nm
|
|
|
|
+ : index === 1
|
|
|
|
+ ? events.shared_trips
|
|
|
|
+ : events.local_meetings
|
|
|
|
+ ).filter((item: any) => {
|
|
|
|
+ const itemData = item.name ? item.name.toLowerCase() : ''.toLowerCase();
|
|
|
|
+ const textData = text.toLowerCase();
|
|
|
|
+ return itemData.indexOf(textData) > -1;
|
|
|
|
+ }) ?? [];
|
|
setFilteredEvents(
|
|
setFilteredEvents(
|
|
index === 0
|
|
index === 0
|
|
? { ...events, nm: searchData }
|
|
? { ...events, nm: searchData }
|
|
: index === 1
|
|
: index === 1
|
|
- ? { ...events, community: searchData }
|
|
|
|
- : { ...events, data: searchData }
|
|
|
|
|
|
+ ? { ...events, shared_trips: searchData }
|
|
|
|
+ : { ...events, local_meetings: searchData }
|
|
);
|
|
);
|
|
|
|
|
|
const searchPastData =
|
|
const searchPastData =
|
|
- (index === 0 ? pastEvents.nm : index === 1 ? pastEvents.community : pastEvents.data).filter(
|
|
|
|
- (item: any) => {
|
|
|
|
- const itemData = item.name ? item.name.toLowerCase() : ''.toLowerCase();
|
|
|
|
- const textData = text.toLowerCase();
|
|
|
|
- return itemData.indexOf(textData) > -1;
|
|
|
|
- }
|
|
|
|
- ) ?? [];
|
|
|
|
|
|
+ (index === 0
|
|
|
|
+ ? pastEvents.nm
|
|
|
|
+ : index === 1
|
|
|
|
+ ? pastEvents.shared_trips
|
|
|
|
+ : pastEvents.local_meetings
|
|
|
|
+ ).filter((item: any) => {
|
|
|
|
+ const itemData = item.name ? item.name.toLowerCase() : ''.toLowerCase();
|
|
|
|
+ const textData = text.toLowerCase();
|
|
|
|
+ return itemData.indexOf(textData) > -1;
|
|
|
|
+ }) ?? [];
|
|
setFilteredPastEvents(
|
|
setFilteredPastEvents(
|
|
index === 0
|
|
index === 0
|
|
? { ...events, nm: searchPastData }
|
|
? { ...events, nm: searchPastData }
|
|
: index === 1
|
|
: index === 1
|
|
- ? { ...events, community: searchPastData }
|
|
|
|
- : { ...events, data: searchPastData }
|
|
|
|
|
|
+ ? { ...events, shared_trips: searchPastData }
|
|
|
|
+ : { ...events, local_meetings: searchPastData }
|
|
);
|
|
);
|
|
|
|
|
|
setSearchQuery(text);
|
|
setSearchQuery(text);
|
|
@@ -444,7 +450,7 @@ const EventsScreen = () => {
|
|
const renderScene = ({
|
|
const renderScene = ({
|
|
route
|
|
route
|
|
}: {
|
|
}: {
|
|
- route: { key: 'nm' | 'community' | 'data'; title: string };
|
|
|
|
|
|
+ route: { key: 'nm' | 'shared_trips' | 'local_meetings'; title: string };
|
|
}) => {
|
|
}) => {
|
|
const isCurrentTabExpanded = expandedStates[route.key];
|
|
const isCurrentTabExpanded = expandedStates[route.key];
|
|
|
|
|