mirror of
https://github.com/irislib/iris-messenger.git
synced 2024-09-19 09:43:29 +00:00
feed display url param
This commit is contained in:
parent
8dda051f8f
commit
97037017c2
@ -11,6 +11,7 @@ import Show from '@/components/helpers/Show';
|
||||
import useSubscribe from '@/hooks/useSubscribe';
|
||||
import { useLocalState } from '@/LocalState';
|
||||
import Key from '@/nostr/Key.ts';
|
||||
import Helpers from '@/utils/Helpers.tsx';
|
||||
|
||||
const Feed = (props: FeedProps) => {
|
||||
const fetchEvents = props.fetchEvents || useSubscribe;
|
||||
@ -19,8 +20,9 @@ const Feed = (props: FeedProps) => {
|
||||
if (!filterOptions || filterOptions.length === 0) {
|
||||
throw new Error('Feed requires at least one filter option');
|
||||
}
|
||||
const displayAsParam = Helpers.getUrlParameter('display') === 'grid' ? 'grid' : 'feed';
|
||||
const [filterOption, setFilterOption] = useState(filterOptions[0]);
|
||||
const [displayAs, setDisplayAs] = useState<DisplayAs>('feed');
|
||||
const [displayAs, setDisplayAs] = useState<DisplayAs>(displayAsParam);
|
||||
const [mutedUsers] = useLocalState('muted', {});
|
||||
const [showUntil, setShowUntil] = useState(Math.floor(Date.now() / 1000));
|
||||
const [infiniteScrollKey, setInfiniteScrollKey] = useState(0);
|
||||
@ -89,6 +91,7 @@ const Feed = (props: FeedProps) => {
|
||||
<DisplaySelector
|
||||
onDisplayChange={(displayAs) => {
|
||||
setDisplayAs(displayAs);
|
||||
Helpers.setUrlParameter('display', displayAs === 'grid' ? 'grid' : null);
|
||||
}}
|
||||
activeDisplay={displayAs}
|
||||
/>
|
||||
|
@ -193,6 +193,26 @@ export default {
|
||||
return urlParams.get(name);
|
||||
},
|
||||
|
||||
setUrlParameter(name: string, value: string | null) {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
|
||||
if (value) {
|
||||
urlParams.set(name, value);
|
||||
} else {
|
||||
urlParams.delete(name);
|
||||
}
|
||||
|
||||
// Construct the new URL.
|
||||
let newUrl = window.location.pathname;
|
||||
|
||||
// Only append the ? if urlParams is not empty.
|
||||
if (urlParams.toString()) {
|
||||
newUrl += '?' + urlParams.toString();
|
||||
}
|
||||
|
||||
window.history.replaceState({}, '', newUrl);
|
||||
},
|
||||
|
||||
getDaySeparatorText(date: Date, dateStr: string, now?: Date, nowStr?: string) {
|
||||
if (!now) {
|
||||
now = new Date();
|
||||
|
Loading…
Reference in New Issue
Block a user