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-09-11 18:21:16 +00:00
|
|
|
import {userMembership, decodeNRelay} from "@app/state"
|
2024-08-14 20:38:55 +00:00
|
|
|
|
2024-09-11 17:48:34 +00:00
|
|
|
export const makeSpacePath = (url: string, extra = "") => {
|
|
|
|
|
let path = `/spaces/${nip19.nrelayEncode(url)}`
|
|
|
|
|
|
|
|
|
|
if (extra) {
|
2024-09-11 18:09:25 +00:00
|
|
|
path += "/" + extra
|
2024-09-11 17:48:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return path
|
|
|
|
|
}
|
2024-08-15 19:08:07 +00:00
|
|
|
|
2024-08-16 18:12:14 +00:00
|
|
|
export const getPrimaryNavItem = ($page: Page) => $page.route?.id?.split("/")[1]
|
2024-08-14 20:38:55 +00:00
|
|
|
|
|
|
|
|
export const getPrimaryNavItemIndex = ($page: Page) => {
|
2024-09-11 17:48:34 +00:00
|
|
|
const urls = Array.from(userMembership.get()?.topicsByUrl.keys() || [])
|
|
|
|
|
|
2024-08-14 20:38:55 +00:00
|
|
|
switch (getPrimaryNavItem($page)) {
|
2024-08-16 17:50:38 +00:00
|
|
|
case "discover":
|
2024-09-11 17:48:34 +00:00
|
|
|
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)
|
2024-09-11 17:48:34 +00:00
|
|
|
|
|
|
|
|
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":
|
2024-09-11 17:48:34 +00:00
|
|
|
return urls.length + 3
|
2024-08-14 20:38:55 +00:00
|
|
|
default:
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
}
|