flotilla/src/app/routes.ts

36 lines
945 B
TypeScript
Raw Normal View History

2024-09-11 18:09:25 +00:00
import {nip19} from "nostr-tools"
2024-08-16 17:50:38 +00:00
import type {Page} from "@sveltejs/kit"
2024-10-03 22:28:06 +00:00
import {userMembership, makeChatId, decodeNRelay} from "@app/state"
export const makeSpacePath = (url: string, extra = "") => {
let path = `/spaces/${nip19.nrelayEncode(url)}`
if (extra) {
2024-09-11 19:19:45 +00:00
path += "/" + encodeURIComponent(extra)
}
return path
}
2024-08-15 19:08:07 +00:00
2024-10-03 22:28:06 +00:00
export const makeChatPath = (pubkeys: string[]) => `/home/${makeChatId(pubkeys)}`
2024-08-16 18:12:14 +00:00
export const getPrimaryNavItem = ($page: Page) => $page.route?.id?.split("/")[1]
export const getPrimaryNavItemIndex = ($page: Page) => {
2024-09-23 17:28:33 +00:00
const urls = Array.from(userMembership.get()?.roomsByUrl.keys() || [])
switch (getPrimaryNavItem($page)) {
2024-08-16 17:50:38 +00:00
case "discover":
return urls.length + 2
2024-09-11 18:09:25 +00:00
case "spaces": {
2024-09-11 18:21:16 +00:00
const routeUrl = decodeNRelay($page.params.nrelay)
return urls.findIndex(url => url === routeUrl) + 1
2024-09-11 18:09:25 +00:00
}
2024-08-16 17:50:38 +00:00
case "settings":
return urls.length + 3
default:
return 0
}
}