mirror of
https://github.com/coracle-social/coracle.git
synced 2024-09-19 11:43:35 +00:00
Prioritize reviews on relay list
This commit is contained in:
parent
1d415ee519
commit
f8252e68b2
@ -19,7 +19,7 @@
|
|||||||
import ListList from "src/app/views/ListList.svelte"
|
import ListList from "src/app/views/ListList.svelte"
|
||||||
import ListSelect from "src/app/views/ListSelect.svelte"
|
import ListSelect from "src/app/views/ListSelect.svelte"
|
||||||
import ListEdit from "src/app/views/ListEdit.svelte"
|
import ListEdit from "src/app/views/ListEdit.svelte"
|
||||||
import RelayAdd from "src/app/views/RelayAdd.svelte"
|
import RelayBrowse from "src/app/views/RelayBrowse.svelte"
|
||||||
import RelayDetail from "src/app/views/RelayDetail.svelte"
|
import RelayDetail from "src/app/views/RelayDetail.svelte"
|
||||||
import RelayReview from "src/app/views/RelayReview.svelte"
|
import RelayReview from "src/app/views/RelayReview.svelte"
|
||||||
|
|
||||||
@ -38,8 +38,8 @@
|
|||||||
<NoteZap note={m.note} />
|
<NoteZap note={m.note} />
|
||||||
{:else if m.type === "note/share"}
|
{:else if m.type === "note/share"}
|
||||||
<NoteShare note={m.note} />
|
<NoteShare note={m.note} />
|
||||||
{:else if m.type === "relay/add"}
|
{:else if m.type === "relay/browse"}
|
||||||
<RelayAdd url={m.url} />
|
<RelayBrowse />
|
||||||
{:else if m.type === "relay/detail"}
|
{:else if m.type === "relay/detail"}
|
||||||
<RelayDetail url={m.url} />
|
<RelayDetail url={m.url} />
|
||||||
{:else if m.type === "relay/review"}
|
{:else if m.type === "relay/review"}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
export let shouldDisplay = always(true)
|
export let shouldDisplay = always(true)
|
||||||
export let parentsTimeout = 500
|
export let parentsTimeout = 500
|
||||||
export let invertColors = false
|
export let invertColors = false
|
||||||
|
export let hideControls = false
|
||||||
export let onEvent = null
|
export let onEvent = null
|
||||||
|
|
||||||
let sub, scroller, cursor
|
let sub, scroller, cursor
|
||||||
@ -191,10 +192,12 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if !hideControls}
|
||||||
<div class="flex justify-between gap-4" in:fly={{y: 20}}>
|
<div class="flex justify-between gap-4" in:fly={{y: 20}}>
|
||||||
<FilterSummary {filter} />
|
<FilterSummary {filter} />
|
||||||
<FeedAdvanced {filter} onChange={start} />
|
<FeedAdvanced {filter} onChange={start} />
|
||||||
</div>
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
{#each filteredNotes as note (note.id)}
|
{#each filteredNotes as note (note.id)}
|
||||||
|
@ -98,15 +98,15 @@
|
|||||||
bind:this={container}
|
bind:this={container}
|
||||||
on:click|stopPropagation>
|
on:click|stopPropagation>
|
||||||
<div class={`border border-${borderColor} overflow-hidden rounded-2xl border-solid`}>
|
<div class={`border border-${borderColor} overflow-hidden rounded-2xl border-solid`}>
|
||||||
<div class="bg-gray-7 p-3" class:rounded-b={data.mentions.length === 0}>
|
<div class="bg-gray-7 p-3 text-gray-2" class:rounded-b={data.mentions.length === 0}>
|
||||||
<Compose bind:this={reply} onSubmit={send} style="min-height: 4rem">
|
<Compose bind:this={reply} onSubmit={send} style="min-height: 4rem">
|
||||||
|
<div class="flex flex-col justify-start" slot="addon">
|
||||||
<button
|
<button
|
||||||
slot="addon"
|
|
||||||
on:click={send}
|
on:click={send}
|
||||||
class="flex cursor-pointer flex-col justify-center gap-2 border-l border-solid
|
class="flex h-12 w-12 cursor-pointer items-center justify-center rounded-full transition-all hover:bg-accent">
|
||||||
border-gray-7 p-4 py-8 text-gray-2 transition-all hover:bg-accent">
|
<i class="fa fa-paper-plane" />
|
||||||
<i class="fa fa-paper-plane fa-xl" />
|
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
</Compose>
|
</Compose>
|
||||||
</div>
|
</div>
|
||||||
{#if data.image}
|
{#if data.image}
|
||||||
|
@ -10,4 +10,10 @@
|
|||||||
const shouldDisplay = e => isLike(e.content)
|
const shouldDisplay = e => isLike(e.content)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Feed {relays} {filter} {shouldDisplay} parentsTimeout={10_000} delta={timedelta(1, "days")} />
|
<Feed
|
||||||
|
hideControls
|
||||||
|
{relays}
|
||||||
|
{filter}
|
||||||
|
{shouldDisplay}
|
||||||
|
parentsTimeout={10_000}
|
||||||
|
delta={timedelta(3, "days")} />
|
||||||
|
@ -9,4 +9,4 @@
|
|||||||
const filter = {kinds: [1, 1985], authors: [pubkey]}
|
const filter = {kinds: [1, 1985], authors: [pubkey]}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Feed {relays} {filter} {invertColors} parentsTimeout={3000} delta={timedelta(1, "days")} />
|
<Feed {relays} {filter} {invertColors} parentsTimeout={3000} delta={timedelta(3, "days")} />
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
<div
|
<div
|
||||||
class={cx(
|
class={cx(
|
||||||
`bg-${theme}`,
|
`bg-${theme}`,
|
||||||
"flex flex-col justify-between gap-3 rounded border border-l-2 border-solid border-gray-6 py-3 px-6 shadow"
|
"flex flex-col justify-between gap-3 rounded-xl border border-l-2 border-solid border-gray-6 py-3 px-6 shadow"
|
||||||
)}
|
)}
|
||||||
style={`border-left-color: ${hsl(stringToHue(relay.url))}`}
|
style={`border-left-color: ${hsl(stringToHue(relay.url))}`}
|
||||||
in:fly={{y: 20}}>
|
in:fly={{y: 20}}>
|
||||||
|
@ -48,10 +48,11 @@
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-4">
|
||||||
<Input bind:value={q} type="text" wrapperClass="flex-grow" {placeholder}>
|
<Input bind:value={q} type="text" wrapperClass="flex-grow" {placeholder}>
|
||||||
<i slot="before" class="fa-solid fa-search" />
|
<i slot="before" class="fa-solid fa-search" />
|
||||||
</Input>
|
</Input>
|
||||||
|
<div class="flex flex-col gap-2">
|
||||||
{#if q.match("^.+\\..+$")}
|
{#if q.match("^.+\\..+$")}
|
||||||
<RelayCard relay={{url: normalizeRelayUrl(q)}} />
|
<RelayCard relay={{url: normalizeRelayUrl(q)}} />
|
||||||
{/if}
|
{/if}
|
||||||
@ -67,3 +68,4 @@
|
|||||||
</small>
|
</small>
|
||||||
</slot>
|
</slot>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
<script>
|
|
||||||
import {fly} from "svelte/transition"
|
|
||||||
import {toast, modal, appName} from "src/partials/state"
|
|
||||||
import Content from "src/partials/Content.svelte"
|
|
||||||
import Heading from "src/partials/Heading.svelte"
|
|
||||||
import RelaySearch from "src/app/shared/RelaySearch.svelte"
|
|
||||||
import user from "src/agent/user"
|
|
||||||
import {loadAppData} from "src/app/state"
|
|
||||||
|
|
||||||
export let url
|
|
||||||
|
|
||||||
const submit = async e => {
|
|
||||||
e.preventDefault()
|
|
||||||
url = url.trim()
|
|
||||||
|
|
||||||
if (!url.includes("://")) {
|
|
||||||
url = "wss://" + url
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
new URL(url)
|
|
||||||
} catch (e) {
|
|
||||||
return toast.show("error", "That isn't a valid url")
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!url.match("^wss?://")) {
|
|
||||||
return toast.show("error", "That isn't a valid websocket url")
|
|
||||||
}
|
|
||||||
|
|
||||||
modal.pop()
|
|
||||||
|
|
||||||
await user.addRelay(url)
|
|
||||||
|
|
||||||
if (!user.getProfile()?.kind0) {
|
|
||||||
loadAppData(user.getPubkey())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<form on:submit={submit} in:fly={{y: 20}}>
|
|
||||||
<Content>
|
|
||||||
<div class="mb-4 flex flex-col items-center justify-center">
|
|
||||||
<Heading>Add a relay</Heading>
|
|
||||||
<p>
|
|
||||||
{appName} automatically discovers relays as you browse the network. Adding more relays will generally
|
|
||||||
make things quicker to load, at the expense of higher data usage.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<RelaySearch />
|
|
||||||
</Content>
|
|
||||||
</form>
|
|
41
src/app/views/RelayBrowse.svelte
Normal file
41
src/app/views/RelayBrowse.svelte
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<script>
|
||||||
|
import {timedelta} from "src/util/misc"
|
||||||
|
import {appName} from "src/partials/state"
|
||||||
|
import Tabs from "src/partials/Tabs.svelte"
|
||||||
|
import Content from "src/partials/Content.svelte"
|
||||||
|
import Heading from "src/partials/Heading.svelte"
|
||||||
|
import Feed from "src/app/shared/Feed.svelte"
|
||||||
|
import RelaySearch from "src/app/shared/RelaySearch.svelte"
|
||||||
|
|
||||||
|
let activeTab = "reviews"
|
||||||
|
|
||||||
|
const tabs = ["reviews", "search"]
|
||||||
|
|
||||||
|
const setActiveTab = tab => {
|
||||||
|
activeTab = tab
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Content>
|
||||||
|
<div class="flex flex-col items-center justify-center">
|
||||||
|
<Heading>Browse Relays</Heading>
|
||||||
|
<p>
|
||||||
|
{appName} automatically discovers relays as you browse the network. Adding more relays will generally
|
||||||
|
make things quicker to load, at the expense of higher data usage.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<Tabs {tabs} {activeTab} {setActiveTab} />
|
||||||
|
{#if activeTab === "reviews"}
|
||||||
|
<Feed
|
||||||
|
hideControls
|
||||||
|
invertColors
|
||||||
|
delta={timedelta(30, "days")}
|
||||||
|
filter={{
|
||||||
|
kinds: [1985],
|
||||||
|
"#l": ["review/relay"],
|
||||||
|
"#L": ["social.coracle.ontology"],
|
||||||
|
}} />
|
||||||
|
{:else}
|
||||||
|
<RelaySearch />
|
||||||
|
{/if}
|
||||||
|
</Content>
|
@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {batch} from "src/util/misc"
|
import {batch, timedelta} from "src/util/misc"
|
||||||
import {displayRelay, normalizeRelayUrl, getAvgQuality} from "src/util/nostr"
|
import {displayRelay, normalizeRelayUrl, getAvgQuality} from "src/util/nostr"
|
||||||
import Content from "src/partials/Content.svelte"
|
import Content from "src/partials/Content.svelte"
|
||||||
import Feed from "src/app/shared/Feed.svelte"
|
import Feed from "src/app/shared/Feed.svelte"
|
||||||
@ -49,6 +49,7 @@
|
|||||||
<Feed
|
<Feed
|
||||||
invertColors
|
invertColors
|
||||||
onEvent={onReview}
|
onEvent={onReview}
|
||||||
|
delta={timedelta(365, "days")}
|
||||||
filter={{
|
filter={{
|
||||||
kinds: [1985],
|
kinds: [1985],
|
||||||
"#l": ["review/relay"],
|
"#l": ["review/relay"],
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
<i class="fa fa-server fa-lg" />
|
<i class="fa fa-server fa-lg" />
|
||||||
<h2 class="staatliches text-2xl">Your relays</h2>
|
<h2 class="staatliches text-2xl">Your relays</h2>
|
||||||
</div>
|
</div>
|
||||||
<Anchor type="button-accent" on:click={() => modal.push({type: "relay/add"})}>
|
<Anchor type="button-accent" on:click={() => modal.push({type: "relay/browse"})}>
|
||||||
<i class="fa-solid fa-plus" /> Add Relay
|
<i class="fa-solid fa-compass" /> Browse Relays
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
|
Loading…
Reference in New Issue
Block a user