1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| import { createSignal } from 'solid-js'
|
| export const transformEndpointURL = (url: string) =>
| /^https?/.test(url) ? url : `${window.location.protocol}//${url}`
|
| export const useStringBooleanMap = () => {
| const [map, setMap] = createSignal<Record<string, boolean>>({})
| const set = (name: string, value: boolean) => {
| setMap({
| ...map(),
| [name]: value,
| })
| }
|
| const setWithCallback = async (
| name: string,
| callback: () => Promise<void>,
| ) => {
| set(name, true)
| try {
| await callback()
| } catch {}
| set(name, false)
| }
|
| return {
| map,
| set,
| setWithCallback,
| }
| }
|
|