Convert the whole filesystem UI to Typescript
This commit is contained in:
@@ -48,12 +48,18 @@ export const get_endpoint = () => {
|
||||
if ((window as any).api_endpoint !== undefined) {
|
||||
return (window as any).api_endpoint as string
|
||||
}
|
||||
|
||||
console.warn("api_endpoint property is not defined on window")
|
||||
|
||||
return "/api"
|
||||
}
|
||||
|
||||
export const get_hostname = () => {
|
||||
if ((window as any).server_hostname !== undefined) {
|
||||
return (window as any).server_hostname as string
|
||||
}
|
||||
console.warn("server_hostname property is not defined on window")
|
||||
return "undefined"
|
||||
}
|
||||
|
||||
export const check_response = async (resp: Response) => {
|
||||
let text = await resp.text()
|
||||
if (resp.status >= 400) {
|
||||
@@ -3,7 +3,16 @@ const swipe_inital_offset = 25
|
||||
// Amount of pixels after which the navigation triggers
|
||||
const swipe_trigger_offset = 75
|
||||
|
||||
export const swipe_nav = (node: HTMLElement, props: { enabled: boolean, prev: boolean, next: boolean }) => {
|
||||
export const swipe_nav = (
|
||||
node: HTMLElement,
|
||||
props: {
|
||||
enabled: boolean,
|
||||
prev: boolean,
|
||||
next: boolean,
|
||||
on_prev: () => void,
|
||||
on_next: () => void,
|
||||
},
|
||||
) => {
|
||||
let start_x = 0
|
||||
let start_y = 0
|
||||
let render_offset = 0
|
||||
@@ -43,10 +52,10 @@ export const swipe_nav = (node: HTMLElement, props: { enabled: boolean, prev: bo
|
||||
|
||||
if (render_offset > swipe_trigger_offset) {
|
||||
set_offset(1000, true)
|
||||
node.dispatchEvent(new CustomEvent("prev"))
|
||||
props.on_prev()
|
||||
} else if (render_offset < -swipe_trigger_offset) {
|
||||
set_offset(-1000, true)
|
||||
node.dispatchEvent(new CustomEvent("next"))
|
||||
props.on_next()
|
||||
} else {
|
||||
set_offset(0, true)
|
||||
}
|
||||
13
svelte/src/lib/UserStore.ts
Normal file
13
svelte/src/lib/UserStore.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { writable } from "svelte/store";
|
||||
import { get_user, type Subscription, type User } from "./PixeldrainAPI";
|
||||
|
||||
export const user = writable(
|
||||
{ subscription: {} as Subscription } as User,
|
||||
(set: (value: User) => void) => {
|
||||
get_user().then((u: User) => {
|
||||
set(u)
|
||||
}).catch((err: any) => {
|
||||
alert("Could not fetch user:\n" + JSON.stringify(err))
|
||||
})
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user