diff --git a/js/schedule/App.jsx b/js/schedule/App.jsx index e2009a86d..579de31b8 100644 --- a/js/schedule/App.jsx +++ b/js/schedule/App.jsx @@ -17,6 +17,7 @@ function App() { const [selectedAgeRanges, setSelectedAgeRanges] = useState([]); const [onlyFavourites, setOnlyFavourites] = useState(false); const [onlyFamilyFriendly, setOnlyFamilyFriendly] = useState(false); + const [onlyNoRecording, setOnlyNoRecording] = useState(false); const [onlyTicketed, setOnlyTicketed] = useState(false); const [includeFinished, setIncludeFinished] = useState(false); const [debug, setDebug] = useState(false); @@ -60,9 +61,9 @@ function App() { useEffect(() => { if (rawSchedule == null) { return }; - let newSchedule = new ScheduleData(rawSchedule, { currentTime, onlyFavourites, onlyFamilyFriendly, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges }); + let newSchedule = new ScheduleData(rawSchedule, { currentTime, onlyFavourites, onlyFamilyFriendly, onlyNoRecording, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges }); setSchedule(newSchedule); - }, [currentTime, onlyFavourites, onlyFamilyFriendly, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges, rawSchedule]); + }, [currentTime, onlyFavourites, onlyFamilyFriendly, onlyNoRecording, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges, rawSchedule]); // Update time once a minute useEffect(() => { @@ -98,7 +99,7 @@ function App() { } let filterProps = { - schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime + schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyNoRecording, setOnlyNoRecording, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime } return ( diff --git a/js/schedule/Filters.jsx b/js/schedule/Filters.jsx index 1650d759e..49dfc1605 100644 --- a/js/schedule/Filters.jsx +++ b/js/schedule/Filters.jsx @@ -16,7 +16,7 @@ function DebugOptions({ debug, currentTime, setCurrentTime }) { ); } -function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime }) { +function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyNoRecording, setOnlyNoRecording, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime }) { const [visible, setVisible] = useState(false); function selectOfficialVenues(ev) { @@ -44,6 +44,9 @@ function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriend Family friendly only + + No Recording only + Include finished events diff --git a/js/schedule/ScheduleData.jsx b/js/schedule/ScheduleData.jsx index adc52da42..5a54d2530 100644 --- a/js/schedule/ScheduleData.jsx +++ b/js/schedule/ScheduleData.jsx @@ -38,6 +38,7 @@ class ScheduleData { if (options.selectedAgeRanges && options.selectedAgeRanges.indexOf(e.age_range) === -1) { return null; } if (options.onlyFavourites && !e.is_fave) { return null; } if (options.onlyFamilyFriendly && !e.is_family_friendly) { return null; } + if (options.onlyNoRecording && !e.noRecording) { return null; } if (options.onlyTicketed && !e.requires_ticket) { return null; } let startHour = e.startTime.startOf('hour');