/
Proposals.svelte
29 lines (26 loc) · 1.19 KB
/
Proposals.svelte
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
<script lang="typescript">
import { Text, ProposalCard, Filter } from 'shared/components'
import { localize } from '@core/i18n'
import { FontWeight } from './enums'
import { IProposal } from '@contexts/governance/interfaces'
import { proposalFilter } from '@contexts/governance/stores'
import { isVisibleProposal, sortProposals } from '@contexts/governance/utils'
export let proposals: IProposal[] = []
$: visibleProposals = proposals.filter((proposal) => isVisibleProposal(proposal, $proposalFilter))
$: sortedProposals = sortProposals(visibleProposals, $proposalFilter)
</script>
<proposals-container class="flex flex-col h-full">
<header-container class="flex justify-between items-center mb-4">
<Text fontSize="14" fontWeight={FontWeight.semibold}>
{localize('views.governance.proposals.title')}
</Text>
<div class="flex flex-row">
<Filter filterStore={proposalFilter} />
</div>
</header-container>
<ul class="grid grid-cols-2 auto-rows-min gap-6 flex-1 overflow-y-scroll">
{#each sortedProposals as proposal}
<ProposalCard {proposal} />
{/each}
</ul>
</proposals-container>