diff --git a/components/AppHeader.vue b/components/AppHeader.vue index b6bb51f..6d48963 100644 --- a/components/AppHeader.vue +++ b/components/AppHeader.vue @@ -53,6 +53,14 @@ Energy + + + - + Contact Us diff --git a/pages/domains.vue b/pages/domains.vue new file mode 100644 index 0000000..8f22097 --- /dev/null +++ b/pages/domains.vue @@ -0,0 +1,49 @@ + + + + Domains + + + + {{ domain.name }} + + + + + {{ domain.description }} + + + + + + + diff --git a/plugins/initClient.ts b/plugins/initClient.ts new file mode 100644 index 0000000..eecd973 --- /dev/null +++ b/plugins/initClient.ts @@ -0,0 +1,9 @@ +import { Plugin } from '@nuxt/types' + +const initClient: Plugin = ({ store }) => { + const localStorageDomainId = localStorage.getItem('activeDomainId') + if (localStorageDomainId) { + store.commit('app/setActiveDomainId', localStorageDomainId) + } +} +export default initClient diff --git a/static/images/brightid.png b/static/images/brightid.png new file mode 100644 index 0000000..633afff Binary files /dev/null and b/static/images/brightid.png differ diff --git a/static/images/gitcoin.png b/static/images/gitcoin.png new file mode 100644 index 0000000..248cf32 Binary files /dev/null and b/static/images/gitcoin.png differ diff --git a/store/app.ts b/store/app.ts index ba124a4..e6eee9e 100644 --- a/store/app.ts +++ b/store/app.ts @@ -1,7 +1,9 @@ -import {GetterTree, MutationTree} from 'vuex' -import {AppState, RootState} from '~/types/store' +import { GetterTree, MutationTree } from 'vuex' +import { AppState, RootState } from '~/types/store' +import { DomainId, DOMAINS } from '~/utils/constants' export const state = (): AppState => ({ + activeDomainId: DomainId.BRIGHTID, hasUnsavedChanges: false, loading: false, isWebp: false, @@ -14,10 +16,17 @@ export const state = (): AppState => ({ export const getters: GetterTree = { isFirstVisitedRoute: state => state.isFirstVisitedRoute, searchValue: state => state.searchValue, - disableGlobalSearchResults: state => state.disableGlobalSearchResults + activeDomain: state => DOMAINS.find(d => d.id === state.activeDomainId), + disableGlobalSearchResults: state => state.disableGlobalSearchResults, } export const mutations: MutationTree = { + setActiveDomainId(state, value) { + state.activeDomainId = value + if (process.client) { + localStorage.setItem('activeDomainId', value) + } + }, setHasUnsavedChanges(state, value) { state.hasUnsavedChanges = value }, diff --git a/styles/components/header.scss b/styles/components/header.scss index ef9f92d..2822ea8 100644 --- a/styles/components/header.scss +++ b/styles/components/header.scss @@ -112,7 +112,7 @@ align-items: center; gap: 4px; background-color: transparent; - margin-left: 24px; + margin-left: 12px; &__label { padding-left: 5px; diff --git a/styles/pages/all.scss b/styles/pages/all.scss index 18e4dc2..fb1e34b 100644 --- a/styles/pages/all.scss +++ b/styles/pages/all.scss @@ -4,6 +4,7 @@ @import './connections.scss'; @import './energy.scss'; @import './contact-us.scss'; +@import './domains.scss'; .app-page { margin-top: 110px; diff --git a/styles/pages/contact-us.scss b/styles/pages/contact-us.scss index 0c490e8..1adcbcb 100644 --- a/styles/pages/contact-us.scss +++ b/styles/pages/contact-us.scss @@ -20,6 +20,7 @@ line-height: 130%; letter-spacing: -0.03em; color: var(--b-gray); + padding-top: 10px; margin-bottom: 48px; } diff --git a/styles/pages/domains.scss b/styles/pages/domains.scss new file mode 100644 index 0000000..1cd97c6 --- /dev/null +++ b/styles/pages/domains.scss @@ -0,0 +1,47 @@ +.domains { + &__body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + + &__title { + @include semi; + display: flex; + justify-content: center; + align-items: flex-start; + font-size: 24px; + line-height: 130%; + letter-spacing: -0.03em; + color: var(--b-gray); + padding-top: 10px; + margin-bottom: 12px; + } + + &__domain { + &__header { + &__container { + display: flex; + align-items: center + } + } + + @include med; + margin-top: 30px; + font-size: 16px; + line-height: 150%; + background: linear-gradient( + 90deg, + #ffffff 0.53%, + rgba(255, 255, 255, 0.5) 145.92% + ); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + text-align: start; + border: 1px solid #777777; + padding: 15px; + cursor: pointer; + border-radius: 5px; + } +} diff --git a/types/index.d.ts b/types/index.d.ts index 180c5f4..daae22e 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,5 +1,7 @@ // TODO: add typescript eslint to fix linter problems // TODO: update values +import { DomainId } from '~/utils/constants' + export type ConnectionLevel = | 'reported' | 'suspicious' @@ -149,3 +151,10 @@ export type BrightIdConnectionsResponse = { connections: BrightIdConnection[] } } + +export type EnergyDomain = { + id: DomainId + name: string + logo: string + description: string +} diff --git a/types/store.d.ts b/types/store.d.ts index e5cab40..3862861 100644 --- a/types/store.d.ts +++ b/types/store.d.ts @@ -8,6 +8,7 @@ import { InboundEnergyAllocationList, LocalForageBrightIdBackup, } from '~/types/index' +import { DomainId } from '~/utils/constants' export type RootState = {} export type BrightIdData = any // TODO: determine the type @@ -15,6 +16,7 @@ export type LoginState = { isAuth: boolean } export type AppState = { + activeDomainId: DomainId disableGlobalSearchResults: boolean searchValue: string hasUnsavedChanges: boolean diff --git a/utils/constants.ts b/utils/constants.ts index 29360c7..48f2726 100644 --- a/utils/constants.ts +++ b/utils/constants.ts @@ -1,4 +1,4 @@ -import {ConnectionLevel} from '~/types' +import { ConnectionLevel, EnergyDomain } from '~/types' export const CONNECTION_SEARCH_SEED = 5 @@ -18,10 +18,31 @@ export const IS_PRODUCTION = (process.env.NUXT_ENV_VERCEL_ENV || process.env.NODE_ENV) === 'production' export const brightIdBaseURL = 'http://184.72.224.75' - export const RATING_INBOUND_STAT = 'ri' export const RATING_OUTBOUND_STAT = 'ro' export const ENERGY_INBOUND_STAT = 'ei' export const ENERGY_OUTBOUND_STAT = 'eo' export const MUTUAL_CONNECTIONS_TEST_NAMESPACE = 'mutual-connections-' + +export enum DomainId { + BRIGHTID = 'brightid', + GITCOIN = 'gitcoin', +} + +export const DOMAINS: EnergyDomain[] = [ + { + id: DomainId.BRIGHTID, + name: 'BrightID', + logo: '/images/brightid.png', + description: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', + }, + { + id: DomainId.GITCOIN, + name: 'Gitcoin', + logo: '/images/gitcoin.png', + description: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', + }, +]