Show time estimate
This commit is contained in:
@ -37,6 +37,16 @@ export function NostrProviderDialog({ provider, ...others }: { provider: StreamP
|
||||
}} />
|
||||
}
|
||||
|
||||
function calcEstimate() {
|
||||
if (!info?.rate || !info?.unit || !info?.balance || !info.balance) return;
|
||||
|
||||
const raw = Math.max(0, info.balance / info.rate);
|
||||
if (info.unit === "min" && raw > 60) {
|
||||
return `${(raw / 60).toFixed(0)} hour`
|
||||
}
|
||||
return `${raw.toFixed(0)} ${info.unit}`
|
||||
}
|
||||
|
||||
const streamEvent = others.ev ?? info.publishedEvent ?? DummyEvent;
|
||||
return <>
|
||||
<div>
|
||||
@ -66,6 +76,7 @@ export function NostrProviderDialog({ provider, ...others }: { provider: StreamP
|
||||
Topup
|
||||
</button>
|
||||
</div>
|
||||
<small>About {calcEstimate()} @ {info.rate} sats/{info.unit}</small>
|
||||
</div>
|
||||
{streamEvent && <StreamEditor onFinish={(ex) => {
|
||||
provider.updateStreamInfo(ex);
|
||||
|
@ -48,6 +48,8 @@ export interface StreamProviderInfo {
|
||||
ingressKey?: string
|
||||
balance?: number
|
||||
publishedEvent?: NostrEvent
|
||||
rate?: number
|
||||
unit?: string
|
||||
}
|
||||
|
||||
export class ProviderStore extends ExternalStore<Array<StreamProvider>> {
|
||||
|
@ -29,7 +29,9 @@ export class Nip103StreamProvider implements StreamProvider {
|
||||
ingressUrl: rsp.url,
|
||||
ingressKey: rsp.key,
|
||||
balance: rsp.quota.remaining,
|
||||
publishedEvent: rsp.event
|
||||
publishedEvent: rsp.event,
|
||||
rate: rsp.quota.rate,
|
||||
unit: rsp.quota.unit
|
||||
} as StreamProviderInfo
|
||||
}
|
||||
|
||||
@ -45,8 +47,9 @@ export class Nip103StreamProvider implements StreamProvider {
|
||||
const summary = findTag(ev, "summary");
|
||||
const image = findTag(ev, "image");
|
||||
const tags = ev?.tags.filter(a => a[0] === "t").map(a => a[1]);
|
||||
const contentWarning = findTag(ev, "content-warning");
|
||||
await this.#getJson("PATCH", "event", {
|
||||
title, summary, image, tags
|
||||
title, summary, image, tags, content_warning: contentWarning
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user