You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.0 KiB
76 lines
2.0 KiB
<script lang="ts"> |
|
import RepoDetails from '$lib/wrappers/RepoDetails.svelte' |
|
import { |
|
ensureSelectedRepoCollection, |
|
selected_repo_collection, |
|
selected_repo_event, |
|
} from '$lib/stores/repo' |
|
import RepoHeader from '$lib/components/repo/RepoHeader.svelte' |
|
import Container from '$lib/components/Container.svelte' |
|
import { ensureProposalSummaries } from '$lib/stores/Proposals' |
|
import { ensureIssueSummaries } from '$lib/stores/Issues' |
|
import type { RepoPage } from '$lib/components/repo/type' |
|
import { naddrToRepoA } from '$lib/components/repo/utils' |
|
import AlertError from '$lib/components/AlertError.svelte' |
|
|
|
export let repo_naddr = '' |
|
export let selected_tab: RepoPage = 'about' |
|
export let with_side_bar = true |
|
export let show_details_on_mobile = false |
|
|
|
let invalid_naddr = false |
|
let a = '' |
|
|
|
$: { |
|
const a_result = naddrToRepoA(repo_naddr) |
|
if (a_result) { |
|
a = a_result |
|
invalid_naddr = false |
|
ensureSelectedRepoCollection(a) |
|
ensureProposalSummaries(a) |
|
ensureIssueSummaries(a) |
|
} else { |
|
invalid_naddr = true |
|
} |
|
} |
|
|
|
let waited_5_secs = false |
|
setTimeout(() => { |
|
waited_5_secs = true |
|
}, 5000) |
|
</script> |
|
|
|
<RepoHeader {...$selected_repo_event} {selected_tab} /> |
|
{#if invalid_naddr} |
|
<Container> |
|
<AlertError> |
|
<div>Error! invalid naddr in url:</div> |
|
<div class="break-all">{repo_naddr}</div> |
|
</AlertError> |
|
</Container> |
|
<Container> |
|
<slot /> |
|
</Container> |
|
{/if} |
|
{#if with_side_bar} |
|
<Container> |
|
<div class="mt-2 md:flex"> |
|
<div class="md:mr-2 md:w-2/3"> |
|
<slot /> |
|
</div> |
|
<div |
|
class:hidden={!show_details_on_mobile} |
|
class=" rounded-lg border border-base-400 md:flex md:w-1/3 md:border-none" |
|
> |
|
<div class="border-b border-base-400 bg-base-300 px-6 py-3 md:hidden"> |
|
<h4 class="">Repository Details</h4> |
|
</div> |
|
<div class="prose my-3 px-6 md:ml-2 md:px-0"> |
|
<RepoDetails {a} /> |
|
</div> |
|
</div> |
|
</div> |
|
</Container> |
|
{:else} |
|
<slot /> |
|
{/if}
|
|
|