|
@@ -17,6 +17,7 @@ import { styles } from './styles';
|
|
import {
|
|
import {
|
|
useGetMegaregionsQuery,
|
|
useGetMegaregionsQuery,
|
|
useGetRegionQeQuery,
|
|
useGetRegionQeQuery,
|
|
|
|
+ useGetRegionsQuery,
|
|
usePostSetTCCRegionMutation
|
|
usePostSetTCCRegionMutation
|
|
} from '@api/myRegions';
|
|
} from '@api/myRegions';
|
|
import { qualityOptions } from '../utils/constants';
|
|
import { qualityOptions } from '../utils/constants';
|
|
@@ -33,12 +34,22 @@ const RegionsScreen = () => {
|
|
const { data: countriesList } = useGetListCountriesQuery(true);
|
|
const { data: countriesList } = useGetListCountriesQuery(true);
|
|
const [megaSelectorVisible, setMegaSelectorVisible] = useState(false);
|
|
const [megaSelectorVisible, setMegaSelectorVisible] = useState(false);
|
|
const [countrySelectorVisible, setCountrySelectorVisible] = useState(false);
|
|
const [countrySelectorVisible, setCountrySelectorVisible] = useState(false);
|
|
- const [selectedMega, setSelectedMega] = useState<{ name: string; id: number }>({
|
|
|
|
- id: 1,
|
|
|
|
- name: 'SOUTHERN EUROPE'
|
|
|
|
|
|
+ // const [selectedMega, setSelectedMega] = useState<{ name: string; id: number }>({
|
|
|
|
+ // id: 1,
|
|
|
|
+ // name: 'SOUTHERN EUROPE'
|
|
|
|
+ // });
|
|
|
|
+ const [selectedMega, setSelectedMega] = useState<{ name: string; id: number | 'all' }>({
|
|
|
|
+ id: 'all',
|
|
|
|
+ name: 'ALL MEGAREGIONS'
|
|
});
|
|
});
|
|
const [selectedCountry, setSelectedCountry] = useState<{ name: string; id: number } | null>(null);
|
|
const [selectedCountry, setSelectedCountry] = useState<{ name: string; id: number } | null>(null);
|
|
- const { data: regionsQe } = useGetRegionQeQuery(
|
|
|
|
|
|
+ // const { data: regionsQe } = useGetRegionQeQuery(
|
|
|
|
+ // selectedCountry ? undefined : selectedMega.id,
|
|
|
|
+ // selectedCountry ? selectedCountry.id : undefined,
|
|
|
|
+ // String(token),
|
|
|
|
+ // true
|
|
|
|
+ // );
|
|
|
|
+ const { data: regionsQe } = useGetRegionsQuery(
|
|
selectedCountry ? undefined : selectedMega.id,
|
|
selectedCountry ? undefined : selectedMega.id,
|
|
selectedCountry ? selectedCountry.id : undefined,
|
|
selectedCountry ? selectedCountry.id : undefined,
|
|
String(token),
|
|
String(token),
|
|
@@ -121,7 +132,7 @@ const RegionsScreen = () => {
|
|
|
|
|
|
const handleCountrySelect = (country: { name: string; id: number }) => {
|
|
const handleCountrySelect = (country: { name: string; id: number }) => {
|
|
setSelectedCountry(country);
|
|
setSelectedCountry(country);
|
|
- setSelectedMega({ id: -1, name: '-' });
|
|
|
|
|
|
+ setSelectedMega({ id: 'all', name: 'ALL MEGAREGIONS' });
|
|
setCountrySelectorVisible(false);
|
|
setCountrySelectorVisible(false);
|
|
};
|
|
};
|
|
|
|
|
|
@@ -133,8 +144,20 @@ const RegionsScreen = () => {
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
if (regionsQe && regionsQe.result === 'OK') {
|
|
if (regionsQe && regionsQe.result === 'OK') {
|
|
- setNmRegions(regionsQe.data.out_regs);
|
|
|
|
- setTccRegions(regionsQe.data.out_tcc);
|
|
|
|
|
|
+ setNmRegions(
|
|
|
|
+ regionsQe.data.regions.map((region) => ({
|
|
|
|
+ id: region.id,
|
|
|
|
+ flag_1: region.flag1,
|
|
|
|
+ flag_2: region.flag2,
|
|
|
|
+ region_name: region.name,
|
|
|
|
+ essential: 0,
|
|
|
|
+ quality: region.best_visit_quality || null,
|
|
|
|
+ year: region.first_visited_in_year || null,
|
|
|
|
+ last: region.last_visited_in_year || null,
|
|
|
|
+ visits: region.no_of_visits || 0
|
|
|
|
+ }))
|
|
|
|
+ );
|
|
|
|
+ setTccRegions(regionsQe.data.tcc);
|
|
}
|
|
}
|
|
}, [regionsQe]);
|
|
}, [regionsQe]);
|
|
|
|
|
|
@@ -184,7 +207,7 @@ const RegionsScreen = () => {
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
if (megaregions && megaregions.result === 'OK') {
|
|
if (megaregions && megaregions.result === 'OK') {
|
|
- setSelectedMega(megaregions.data[1]);
|
|
|
|
|
|
+ setSelectedMega({ id: 'all', name: 'ALL MEGAREGIONS' });
|
|
}
|
|
}
|
|
}, [megaregions]);
|
|
}, [megaregions]);
|
|
|
|
|
|
@@ -242,7 +265,7 @@ const RegionsScreen = () => {
|
|
</TouchableOpacity>
|
|
</TouchableOpacity>
|
|
|
|
|
|
<TouchableOpacity style={styles.megaSelector} onPress={() => setCountrySelectorVisible(true)}>
|
|
<TouchableOpacity style={styles.megaSelector} onPress={() => setCountrySelectorVisible(true)}>
|
|
- <Text style={styles.megaButtonText}>{selectedCountry?.name || '-'}</Text>
|
|
|
|
|
|
+ <Text style={styles.megaButtonText}>{selectedCountry?.name || 'ALL COUNTRIES'}</Text>
|
|
<ChevronIcon width={18} height={18} />
|
|
<ChevronIcon width={18} height={18} />
|
|
</TouchableOpacity>
|
|
</TouchableOpacity>
|
|
|
|
|
|
@@ -325,14 +348,25 @@ const RegionsScreen = () => {
|
|
isVisible={megaSelectorVisible}
|
|
isVisible={megaSelectorVisible}
|
|
onClose={() => setMegaSelectorVisible(false)}
|
|
onClose={() => setMegaSelectorVisible(false)}
|
|
onSelect={handleMegaSelect}
|
|
onSelect={handleMegaSelect}
|
|
- data={megaregions?.data ?? []}
|
|
|
|
|
|
+ data={
|
|
|
|
+ megaregions?.data
|
|
|
|
+ ? [{ id: 'all' as never, name: 'ALL MEGAREGIONS' }, ...megaregions?.data]
|
|
|
|
+ : []
|
|
|
|
+ }
|
|
/>
|
|
/>
|
|
|
|
|
|
<MegaregionsModal
|
|
<MegaregionsModal
|
|
isVisible={countrySelectorVisible}
|
|
isVisible={countrySelectorVisible}
|
|
onClose={() => setCountrySelectorVisible(false)}
|
|
onClose={() => setCountrySelectorVisible(false)}
|
|
onSelect={handleCountrySelect}
|
|
onSelect={handleCountrySelect}
|
|
- data={countriesList?.data ?? []}
|
|
|
|
|
|
+ data={
|
|
|
|
+ countriesList?.data
|
|
|
|
+ ? [
|
|
|
|
+ { id: 'all' as never, name: 'ALL COUNTRIES', flag: null as never },
|
|
|
|
+ ...countriesList?.data
|
|
|
|
+ ]
|
|
|
|
+ : []
|
|
|
|
+ }
|
|
isCountry={true}
|
|
isCountry={true}
|
|
/>
|
|
/>
|
|
|
|
|