Files
discord-decomp/modules/quests/native/QuestHomeSetting.tsx
T
2026-11-01 12:12:55 +02:00

97 lines
3.3 KiB
TypeScript

// Metro module 14027 (f14028).
import { useState, useEffect, useCallback } from "react";
import QuestHomeNavigationStore from "../QuestHomeNavigationStore";
import { QuestHomeSortMethods, getQuestHomeFilterOptionItem } from "../QuestConstants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { useNavigation } from "../../../design/components/Navigator/native/useNavigation.native";
import { shallow } from "../../../_bundle/Module3802";
import UserSettingsModalActionCreators from "../../../actions/UserSettingsModalActionCreators";
import useQuestHomeHeader from "./useQuestHomeHeader";
import QuestHome from "./QuestHome";
function $mk92453() {
return (a0) => a0 != null;
}
let $mk92452 = function() {
return (a0) => getQuestHomeFilterOptionItem(a0);
};
const useStyles = createStyles({
container: {
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST
}
});
let c9804_10 = [];
export default function QuestHomeSetting() {
let navigation, setState3;
const styles = useStyles();
const [selectedSortMethod, setState] = useState(() => {
let r6 = QuestHomeNavigationStore.getField("sort");
if (!(r6 != null && Object.values(QuestHomeSortMethods).includes(r6))) {
r6 = QuestHomeSortMethods.SUGGESTED;
}
return r6;
});
const [selectedFilters, setState2] = useState(() => {
let r16;
const field = QuestHomeNavigationStore.getField("filter");
if (field == null) {
r16 = c9804_10;
} else {
r16 = field.split(",").map($mk92452()).filter($mk92453());
if (!(r16.length > 0)) {
r16 = c9804_10;
}
}
return r16;
});
useEffect(() => QuestHomeNavigationStore.subscribe((a0) => ({
sort: a0.sort,
filter: a0.filter
}), (a0, a1) => {
let r35;
if (a0.sort !== a1.sort) {
let sort = a0.sort;
if (!(sort != null && Object.values(QuestHomeSortMethods).includes(sort))) {
sort = QuestHomeSortMethods.SUGGESTED;
}
setState(sort);
}
if (a0.filter !== a1.filter) {
const filter = a0.filter;
if (filter == null) {
r35 = c9804_10;
} else {
r35 = filter.split(",").map($mk92452()).filter($mk92453());
if (!(r35.length > 0)) {
r35 = c9804_10;
}
}
setState2(r35);
}
}, {
equalityFn: shallow,
fireImmediately: true
}), []);
navigation = void 0;
setState3 = void 0;
navigation = useNavigation();
let isNavigationComplete;
[isNavigationComplete, setState3] = useState(false);
useEffect(() => navigation.addListener("transitionEnd", () => setState3(true)), [navigation]);
const callback = useCallback(() => {
setState2(c9804_10);
}, []);
useEffect(() => () => {
UserSettingsModalActionCreators.close();
QuestHomeNavigationStore.resetState();
}, []);
const field = QuestHomeNavigationStore.useField("scrollToQuestId");
useQuestHomeHeader({
setSelectedSortMethod: setState,
setSelectedFilters: setState2,
selectedFilters,
selectedSortMethod
});
return <QuestHome containerStyle={styles.container} isNavigationComplete={isNavigationComplete} scrollToQuestId={field} sortMethod={selectedSortMethod} filters={selectedFilters} onClearFilters={callback} />;
};