@@ -42,7 +46,7 @@ function onOptionSelected(value: string) {
leave-to-class="opacity-0"
>
{{ option.label }}
- ({{ option.count }})
+ ({{ option.count }})
diff --git a/components/EditButton.vue b/components/EditButton.vue
index b07bcc3..1178872 100644
--- a/components/EditButton.vue
+++ b/components/EditButton.vue
@@ -13,6 +13,7 @@ defineProps<{
>
diff --git a/components/Project/ProjectDetailCategoryDivider.vue b/components/Project/ProjectDetailCategoryDivider.vue
index cd49d13..48ffd0e 100644
--- a/components/Project/ProjectDetailCategoryDivider.vue
+++ b/components/Project/ProjectDetailCategoryDivider.vue
@@ -20,9 +20,6 @@ defineProps<{
gap-8px
text-16px
font-700
- lg:max-w-320px
- lg:w-full
- lg:justify-end
>
{{ title }}
diff --git a/components/Project/ProjectDetailContainer.vue b/components/Project/ProjectDetailContainer.vue
index 576ae78..0a68200 100644
--- a/components/Project/ProjectDetailContainer.vue
+++ b/components/Project/ProjectDetailContainer.vue
@@ -6,8 +6,6 @@
diff --git a/components/Project/ProjectGrid.vue b/components/Project/ProjectGrid.vue
index 2d007ee..84d2ec8 100644
--- a/components/Project/ProjectGrid.vue
+++ b/components/Project/ProjectGrid.vue
@@ -2,15 +2,35 @@
import type { ProjectShallow } from '~/types'
const props = defineProps<{
- projects: ProjectShallow[]
+ projects: { title: string, projects: ProjectShallow[] }[]
}>()
-const { switcher } = storeToRefs(useData())
+const { switcher, filter } = storeToRefs(useData())
-const displayCount = ref(100)
-const displayedProjects = computed(() => props.projects.slice(0, displayCount.value))
-function showMoreProjects() {
- displayCount.value += 50
+const totalProjectsCount = props.projects.map(g => g.projects.length).reduce((a, b) => a + b, 0)
+
+function onChangeSort(sortKey: string) {
+ if (filter.value.sortby === sortKey) {
+ if (filter.value.sortDirection === 'desc' && filter.value.sortby !== 'score') {
+ filter.value.sortby = 'score'
+ filter.value.sortDirection = 'desc'
+ return
+ }
+ filter.value.sortDirection = filter.value.sortDirection === 'asc' ? 'desc' : 'asc'
+ return
+ }
+ filter.value.sortby = sortKey
+ filter.value.sortDirection = sortKey === 'score' ? 'desc' : 'asc'
}
+
+const cardTitles = ref< { label: string, sortKey: string, togglable?: boolean }[]>([
+ { label: 'Usecase', sortKey: 'usecase' },
+ { label: 'Openess', sortKey: 'openess', togglable: true },
+ { label: 'Technology', sortKey: 'technology', togglable: true },
+ { label: 'Privacy', sortKey: 'privacy', togglable: true },
+ { label: 'Ecosystem', sortKey: 'ecosystem' },
+ { label: 'Links', sortKey: 'links' },
+ { label: 'W3PN Score', sortKey: 'score', togglable: true },
+])
@@ -19,36 +39,138 @@ function showMoreProjects() {
flex-col
items-start
>
-
-
-
-
+
+
+ {{ group.projects.length }} {{ group.title }}
+
+
+
+
+
+
+
+
+ Sort by:
+
+
+ Score
+
+
+
+
+
+ {{ title.label }}
+
+
+
+
+
+
+
+
+
No Projects found...
-
diff --git a/components/Project/ProjectHeading.vue b/components/Project/ProjectHeading.vue
index a815a54..14150b6 100644
--- a/components/Project/ProjectHeading.vue
+++ b/components/Project/ProjectHeading.vue
@@ -1,17 +1,17 @@
-
+
-
+
-
- {{ project.project_type ?? '---' }}
-
- {{ `${calculateScore}%` }}
+
+ Usecases:
+
+
+ Swap, Mixer
+
-
-
-
-
-
-
- {{ project.links?.github ? 'YES' : 'NO' }}
-
-
+
+ Categories:
+
+
+ Dapp, Network
+
+
+
+
+ Ecosystems:
+
+
+ Ethereum, Secret Network
+
+
+
+
-
-
-
- {{ project.project_status?.version }}
-
-
-
-
-
- {{ `${project.team?.length} members` }}
-
-
-
-
-
- {{ project.links?.docs ? 'YES' : 'NO' }}
-
-
-
-
-
- {{ project.audits ? 'YES' : 'NO' }}
-
-
-
-
-
- {{ `${availableSupport} channels` }}
-
-
-
-
- {{ project.blockchain_features?.network }}
-
-
- 17/11/2023 – 23:22
-
+
+
+
+ {{ rating.name }}:
+
+
+
+
+
+
+ Total Score:
+
+
+ {{ calculateScore(project) }} %
+
+
+
diff --git a/components/Project/ProjectHistory.vue b/components/Project/ProjectHistory.vue
new file mode 100644
index 0000000..8a94e2e
--- /dev/null
+++ b/components/Project/ProjectHistory.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+ {{ formatDate(project.history!.time!) }}
+
+
+
+
diff --git a/components/Project/ProjectNavigation.vue b/components/Project/ProjectNavigation.vue
index 94f2f9c..c226100 100644
--- a/components/Project/ProjectNavigation.vue
+++ b/components/Project/ProjectNavigation.vue
@@ -32,13 +32,6 @@ const githubProjectUrl = computed(() => {
md:block
>{{ 'BACK TO LIST' }}
-
@@ -23,25 +23,98 @@ defineProps<{
leading-24px
font-400
>
-
- {{ 'Project Description' }}
+
+ Project Description
- {{ project.description ?? '---' }}
+ >
+ {{ project.description ?? '---' }}
+
+
+
+
+
+
+ Assets used
+
+
+ ETH, DAI, USDC, FRAX
+
+
+
+
+ Native token
+
+
+ SCRT
+
+
+
+
+ Project launch day
+
+
+ 06/2017
+
+
- {{ 'Infrastructure links' }}
+ Infrastructure links:
@@ -50,18 +123,12 @@ defineProps<{
:to="project.links?.web"
>
-
+
- {{ 'Website' }}
-
-
-
-
-
- {{ 'Blog' }}
+ Website
- {{ 'Github' }}
+ Github
+
+
+
+
+
+ Whitepaper
- {{ 'Docs' }}
+ Docs
+
+
+
+
+
+ Blog
+
+
+
+
+
+ Forum
- {{ 'Explorer' }}
+ Explorer
- {{ 'Snapshot' }}
-
-
-
-
-
- {{ 'Token' }}
-
-
-
-
-
- {{ 'Coingecko' }}
+ Governance
@@ -149,22 +233,22 @@ defineProps<{
- {{ 'Forum' }}
+ Twitter
- {{ 'Discord' }}
+ Discord
- {{ 'Twitter' }}
+ Telegram
- {{ 'Lens' }}
+ Lens
- {{ 'Farcaster' }}
-
-
-
-
-
- {{ 'Telegram' }}
+ Farcaster
-
-
-
+
+
- {{ project.product_launch_day }}
-
-
- {{ project.blockchain_features?.opensource ? 'Yes' : 'No' }}
-
-
-
-
+
-
-
- {{ fund.name }}
- {{ fund.time }}
- {{ fund.type }}
- {{ fund.value }}
-
-
-
+ {{ funding.name }}
+
+
+
+
+
+
+ N/A
+
diff --git a/components/Project/ProjectOpenessTeamMembers.vue b/components/Project/ProjectOpenessTeamMembers.vue
index cb1d66c..26d82db 100644
--- a/components/Project/ProjectOpenessTeamMembers.vue
+++ b/components/Project/ProjectOpenessTeamMembers.vue
@@ -32,58 +32,32 @@ const props = defineProps<{
>
-
+
+
{{ member.name }}
- {{ member.role ?? 'N/A' }}
diff --git a/components/Project/ProjectPrivacy.vue b/components/Project/ProjectPrivacy.vue
index c607b55..96b7cd2 100644
--- a/components/Project/ProjectPrivacy.vue
+++ b/components/Project/ProjectPrivacy.vue
@@ -12,7 +12,7 @@ defineProps<{
badge-text="3/10"
>
@@ -26,11 +26,11 @@ defineProps<{
lg:grid-cols-4
>
- {{ project.blockchain_features?.p2p ? 'YES' : 'NO' }}
+ {{ project.default_privacy ? 'YES' : 'NO' }}
{{ project.tracebility?.kyc ? 'YES' : 'NO' }}
-
- {{ project.storage?.decentralized ? 'YES' : 'NO' }}
-
-
- {{ project.default_privacy ? 'YES' : 'NO' }}
-
-
-
-
- {{ project.blockchain_features?.revealed_recipient ? 'YES' : 'NO' }}
-
-
- {{ project.blockchain_features?.revealed_sender ? 'YES' : 'NO' }}
-
-
- {{ project.blockchain_features?.revealed_ammount ? 'YES' : 'NO' }}
-
-
- {{ project.blockchain_features?.reversability_condition }}
-
-
-
-
- {{ project.blockchain_features?.connected_tx ? 'YES' : 'NO' }}
-
-
- {{ project.blockchain_features?.data_masking }}
-
-
- {{ project.blockchain_features?.tx_history ? 'YES' : 'NO' }}
-
-
-
-
-
-
{{ project.privacy_policy?.defined ? 'YES' : 'NO' }}
+
+
+
+
+
+ {{ project.compliance ? 'YES' : 'NO' }}
+
+
+ {{ project.tracebility?.sign_in_type_requirments }}
{{ project.privacy_policy?.data_usage }}
-
- {{ project.blockchain_features?.frontend_anonymity }}
-
-
-
-
-
-
-
- {{ project.compliance ? 'YES' : 'NO' }}
-
-
-
-
- {{ project.tracebility?.sign_in_type_requirments }}
-
-
- {{ project.blockchain_features?.identity_integration }}
-
diff --git a/components/Project/ProjectRating.vue b/components/Project/ProjectRating.vue
new file mode 100644
index 0000000..ebbdab1
--- /dev/null
+++ b/components/Project/ProjectRating.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.positive }}
+
+
+ {{ item.isValid ? item.positive : item.negative }}
+
+
+
+
+
+
diff --git a/components/Project/ProjectSecurity.vue b/components/Project/ProjectSecurity.vue
index 4d97c2b..e88fda0 100644
--- a/components/Project/ProjectSecurity.vue
+++ b/components/Project/ProjectSecurity.vue
@@ -12,11 +12,36 @@ defineProps<{
badge-text="3/10"
>
+
- {{ project.blockchain_features?.asset_custody_type }}
-
-
-
- {{ project.blockchain_features?.upgradability?.enabled ? 'YES' : 'NO' }}
-
- {{ ` – ${project.blockchain_features?.upgradability?.type}` }}
+ {{ project.technical_spof }}
{{ project.third_party_dependency ? 'YES' : 'NO' }}
-
- {{ project.technical_spof }}
-
-
-
-
-
-
diff --git a/components/Project/ProjectSecurityAudit.vue b/components/Project/ProjectSecurityAudit.vue
index 287d62b..c74e18c 100644
--- a/components/Project/ProjectSecurityAudit.vue
+++ b/components/Project/ProjectSecurityAudit.vue
@@ -9,36 +9,69 @@ defineProps<{
-
-
{{ auditName }}
-
-
-
+ {{ date }}
+ leading-20px
+ hidden
+ lg:block
+ >
+ Overview of smart contracts
+
+
+
+
+ {{ date ? formatDate(date) : 'N/A' }}
+
+
+ More info
+
diff --git a/components/Project/ProjectTechnology.vue b/components/Project/ProjectTechnology.vue
index 9479125..3bd7e8d 100644
--- a/components/Project/ProjectTechnology.vue
+++ b/components/Project/ProjectTechnology.vue
@@ -12,7 +12,7 @@ defineProps<{
badge-text="3/10"
>
@@ -21,100 +21,54 @@ defineProps<{
grid
grid-cols-2
items-start
- mt-32px
+ mt-24px
gap-y-16px
lg:grid-cols-4
>
+
+ {{ project.blockchain_features?.opensource ? 'YES' : 'NO' }}
+
+
+ {{ project.blockchain_features?.asset_custody_type.toUpperCase() }}
+
+
+ {{ project.blockchain_features?.upgradability ? 'YES' : 'NO' }}
+
- {{ project.technology?.type }}
+ {{ project.technology?.type.toUpperCase() }}
- {{ project.blockchain_features?.encryption }}
+ {{ project.blockchain_features?.p2p ? 'YES' : 'NO' }}
- {{ project.licences }}
-
-
- {{ project.links?.whitepaper ? 'YES' : 'NO' }}
-
-