Skip to content

Commit dca70b4

Browse files
authored
Reduce ceremony requests (#3171)
2 parents e5c9e76 + 7868e11 commit dca70b4

File tree

6 files changed

+42
-33
lines changed

6 files changed

+42
-33
lines changed

ceremony/src/lib/components/Terminal/Activity.svelte

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
<script lang="ts">
2-
import { getState } from "$lib/state/index.svelte.ts"
32
import Print from "$lib/components/Terminal/Print.svelte"
3+
import { onDestroy, onMount } from "svelte"
4+
import { Activity } from "$lib/state/activity.svelte.ts"
45
5-
const { activity } = getState()
6+
let activity: Activity | null = $state(null)
7+
8+
onMount(() => {
9+
activity = new Activity()
10+
})
11+
12+
onDestroy(() => {
13+
if (activity) {
14+
activity = null
15+
}
16+
})
617
718
function formatTimestamp(timestamp: string): string {
819
const date = new Date(timestamp)
@@ -20,7 +31,7 @@ function formatTimestamp(timestamp: string): string {
2031
}
2132
</script>
2233

23-
{#if activity.data}
34+
{#if activity && activity.data}
2435
<div class="flex flex-col-reverse">
2536
{#each activity.data as item, i (item)}
2637
{@const type = item.message.type}
Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,38 @@
11
<script lang="ts">
2-
import { getState } from "$lib/state/index.svelte.ts"
32
import { goto } from "$app/navigation"
4-
import { onMount } from "svelte"
3+
import { onMount, onDestroy } from "svelte"
54
import Buttons from "$lib/components/Terminal/Install/Buttons.svelte"
6-
import type { Contributions } from "$lib/state/contributions.svelte.ts"
7-
import type { Terminal } from "$lib/state/terminal.svelte.ts"
5+
import { Contributions } from "$lib/state/contributions.svelte.ts"
6+
import { getState } from "$lib/state/index.svelte.ts"
87
9-
type State = {
10-
contributions: Contributions
11-
terminal: Terminal
12-
}
8+
const { terminal } = getState()
139
14-
const { contributions, terminal }: State = getState()
10+
let contributions: Contributions | null = null
11+
let data: Array<{ text: string; action: string }> = $state([])
1512
16-
let focusedIndex = $state(0)
17-
let buttons: Array<HTMLButtonElement> = []
18-
let data = $state([])
1913
onMount(() => {
20-
contributions.data.map(contribution => {
21-
data.push({ text: contribution.payload_id, action: contribution.public_key_hash })
22-
})
14+
contributions = new Contributions()
15+
})
16+
17+
onDestroy(() => {
18+
if (contributions) {
19+
contributions = null
20+
}
21+
})
22+
23+
$effect(() => {
24+
if (contributions) {
25+
data = contributions.data.map(contribution => ({
26+
text: contribution.payload_id,
27+
action: contribution.public_key_hash
28+
}))
29+
}
2330
})
2431
25-
function trigger(value: any) {
32+
function trigger(value: string) {
2633
goto(`/contributions/${value}`)
2734
terminal.setTab(4)
2835
terminal.setHash(value)
2936
}
3037
</script>
31-
<Buttons
32-
{data}
33-
trigger={(value) => trigger(value)}
34-
/>
38+
<Buttons {data} trigger={(value) => trigger(value)}/>

ceremony/src/lib/state/live.svelte.ts renamed to ceremony/src/lib/state/activity.svelte.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class Activity {
1919
.from("log")
2020
.select("message, created_at")
2121
.order("created_at", { ascending: false })
22-
.limit(100)
22+
.limit(50)
2323

2424
if (error) {
2525
console.error("Error fetching initial data:", error)

ceremony/src/lib/state/contributor.svelte.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ type QueueInfoResult = QueueInfoSuccess | QueueInfoError
6767

6868
const second = 1000
6969
const CLIENT_POLING_INTERVAL = second * 5
70-
const CONTRIBUTION_POLLING_INTERVAL = second * 15
71-
const QUEUE_POLLING_INTERVAL = second * 30
70+
const CONTRIBUTION_POLLING_INTERVAL = second * 30
71+
const QUEUE_POLLING_INTERVAL = second * 60
7272

7373
export class Contributor {
7474
userId = $state<string | undefined>(undefined)

ceremony/src/lib/state/index.svelte.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@ import { getContext, setContext } from "svelte"
22
import { Contributor } from "./contributor.svelte.ts"
33
import { Terminal } from "./terminal.svelte.ts"
44
import { user, type UserSession } from "$lib/state/session.svelte.ts"
5-
import { Activity } from "$lib/state/live.svelte.ts"
6-
import { Contributions } from "$lib/state/contributions.svelte.ts"
75

86
export interface AppState {
97
contributor: Contributor
108
terminal: Terminal
11-
activity: Activity
12-
contributions: Contributions
139
user: UserSession
1410
}
1511

@@ -20,8 +16,6 @@ export function createState() {
2016
const state: AppState = {
2117
contributor: new Contributor(),
2218
terminal: new Terminal(),
23-
activity: new Activity(),
24-
contributions: new Contributions(),
2519
user: user
2620
}
2721

ceremony/src/lib/supabase/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const SUPABASE_URL = import.meta.env.VITE_SUPABASE_URL
77
export const createSupabaseClient = () => {
88
let client: SupabaseClient | null = null
99
let refreshInterval: NodeJS.Timeout | null = null
10-
const REFRESH_INTERVAL = 5 * 60 * 1000 // 5 minutes
10+
const REFRESH_INTERVAL = 30 * 60 * 1000 // 30 minutes
1111

1212
const getClient = () => {
1313
if (client) return client

0 commit comments

Comments
 (0)