// Metro module 8331 (f8332). import { useState, useEffect, useMemo } from "react"; import GuildScheduledEventStore from "./GuildScheduledEventStore"; import { useStateFromStores } from "../../_bundle/Module589"; import usePrevValue from "../../hooks/usePrevValue"; import { generateNextRecurrences, getRRule, MAX_YEARS_AHEAD_RECURRING_EVENT } from "./utils/ScheduleUtils"; import Module12 from "../../_bundle/Module12"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import Durations from "../../utils/Durations"; import GuildScheduledEventManager from "./GuildScheduledEventManager"; export default function useGuildEventRecurrences(a0, a1, a2) { let c16508_4; const stateFromStores = useStateFromStores([GuildScheduledEventStore], () => GuildScheduledEventStore.getGuildScheduledEvent(a0)); const prevValue = usePrevValue(a2); c16508_4 = prevValue; const [state, setState] = useState(a2 != null && stateFromStores != null ? generateNextRecurrences(4, getRRule(a2), new Date(stateFromStores.scheduled_start_time)) : []); useEffect(() => { if (c16508_4 != null) { if (a2 != null && stateFromStores != null && !Module12.isEqual(c16508_4, a2)) { setState(generateNextRecurrences(state.length, getRRule(a2), new Date(stateFromStores.scheduled_start_time))); } } }, [a2, state.length, stateFromStores, prevValue]); useEffect(() => { if (a1 != null) { GuildScheduledEventManager.getGuildEventUserCounts(a1, a0, state.map((item) => SnowflakeUtils.fromTimestamp(Math.floor(item.getTime() / Durations.Millis.SECOND) * Durations.Millis.SECOND))); } }, [a0, a1, state]); return { recurrenceStartTimes: state, canViewMoreRecurrences: useMemo(() => { if (a2 != null && state.length !== 0 && stateFromStores?.scheduled_start_time != null) { const date = new Date(); date.setFullYear(date.getFullYear() + MAX_YEARS_AHEAD_RECURRING_EVENT); const r31 = state[state.length - 1]; const r37 = getRRule(a2).after(r31); return r37 != null && r37 <= date; } return false; }, [a2, state, stateFromStores?.scheduled_start_time]), updateRecurrenceStartTimes: function updateRecurrenceStartTimes() { if (a2 != null && stateFromStores != null) { setState([...state, ...generateNextRecurrences(4, getRRule(a2), state[state.length - 1], true)]); } } }; };