diff --git a/lang/ca.json b/lang/ca.json
index e02fb9fb8f..02e5d52219 100644
--- a/lang/ca.json
+++ b/lang/ca.json
@@ -308,10 +308,10 @@
"label.deposit_confirmed": "Dipòsit confirmat",
"label.deposit_or_stream_balance": "Diposita Tokens o utilitza el Saldo de Transmissió",
"label.deposit_token_use_balance": "Diposita Tokens o utilitza el Saldo de Transmissió",
- "label.devouch.go_to_devouch": "Anar a DeVouch",
- "label.devouch.description.vouch_this_project": "Amb DeVouch, pots assenyalar el teu suport a aquest projecte testificant la seva legitimitat, cosa que potencialment augmentarà els beneficis que rep a Giveth.",
+ "label.devouch.attest_on_devouch": "Certifica a DeVouch",
+ "label.devouch.if_you_are_eligible": "Si ets un verificador elegible de Giveth, pots avalar la legitimitat d'aquest projecte, potencialment augmentant els beneficis que rep a Giveth.",
"label.devouch.learn_more_about_devouch": "Més informació sobre DeVouch i la verificació descentralitzada",
- "label.devouch.title.vouch_this_project": "Avalar aquest Projecte",
+ "label.devouch.view_this_project": "Veure aquest projecte a DeVouch",
"label.didnt_get_the_givdrop": "No has rebut el GIVdrop?",
"label.did_the_donation_but_not_confirmed": "He fet la donació però no està confirmada.",
"label.discover_our_roadmap": "descobreix la nostra planificació estratègica",
@@ -1661,12 +1661,11 @@
"project.givback_toast.description.non_verified_owner_rejected_2": " o al suport de Discord per a més instruccions.",
"project.givback_toast.description.non_verified_owner_submitted": "Notícies emocionants! La teva sol·licitud ha estat enviada i està a la cua per ser revisada pel nostre equip de revisió d'elegibilitat per a GIVbacks. Et respondrem en un termini d'1-2 setmanes.",
"project.givback_toast.description.non_verified_public": "Actualment, els GIVbacks només s'atorguen per donacions fetes a projectes elegibles per a GIVbacks a Ethereum. La teva contribució segueix sent important, fins i tot si no genera GIVbacks!",
- "project.givback_toast.description.verified_owner": "Potencia el teu projecte per augmentar el seu percentatge de GIVbacks i ajudar-lo a aparèixer més amunt a la pàgina de projectes!",
- "project.givback_toast.description.verified_public": "Les donacions de ${value} o més són elegibles per a GIVbacks. Impulsa aquest projecte per augmentar el seu percentatge de recompenses i visibilitat a la pàgina de projectes!",
+ "project.givback_toast.description.verified_owner": "Potencia el teu projecte per augmentar el seu percentatge de GIVbacks i ajudar-lo a aparèixer més amunt a la pàgina de projectes!",
+ "project.givback_toast.description.verified_public": "Les donacions a Ethereum a projectes elegibles per a GIVbacks són recompensades amb GIV. Impulsa aquest projecte per augmentar el seu percentatge de recompenses i fer-lo més visible a la pàgina de projectes!",
"project.givback_toast.title.non_verified_owner": "El teu projecte està creant o donant suport a béns públics?",
- "project.givback_toast.description.verified_public_not_eligible": "{stakeLock} els teus tokens GIV per obtenir GIVpower. Impulsa aquest projecte per fer-lo més visible a la pàgina de projectes. Nota: Tot i que aquest projecte és elegible per ser impulsat amb GIVpower, no generarà GIVbacks per als seus donants.",
"project.givback_toast.description.verified_owner_not_eligible": "El teu projecte ha estat avalat pels Verificadors de Giveth i ara pot beneficiar-se de GIVpower. Fes stake i bloqueja els teus tokens GIV per impulsar aquest projecte i fer-lo més visible a la pàgina de projectes. No obstant això, donar a aquest projecte no generarà GIVbacks per als donants.",
- "project.givback_toast.title.non_verified_owner_cancelled": "Estat Cancel·lat",
+ "project.givback_toast.title.non_verified_owner_cancelled": "Estat Cancel·lat",
"project.givback_toast.title.non_verified_owner_deactive": "Mode Desactivat",
"project.givback_toast.title.non_verified_owner_draft": "Publica el teu projecte avui!",
"project.givback_toast.title.non_verified_owner_incomplete": "Sol·licitud Incompleta",
diff --git a/lang/en.json b/lang/en.json
index 94823bb508..bf5f9126b0 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -308,10 +308,10 @@
"label.deposit_confirmed": "Deposit confirmed",
"label.deposit_or_stream_balance": "Deposit Tokens or use Stream Balance",
"label.deposit_token_use_balance": "Deposit Tokens or use Stream Balance",
- "label.devouch.go_to_devouch": "Go to DeVouch",
- "label.devouch.title.vouch_this_project": "Vouch for this Project",
- "label.devouch.description.vouch_this_project": "With DeVouch, you can signal your support for this project by attesting to its legitimacy, potentially increasing the benefits it receives on Giveth.",
+ "label.devouch.attest_on_devouch": "Attest on Devouch",
+ "label.devouch.if_you_are_eligible": "If you are an eligible Giveth Verifier you can vouch for this project's legitimacy, potentially increasing the benefits it receives on Giveth.",
"label.devouch.learn_more_about_devouch": "Learn more about DeVouch & Decentralized Verification",
+ "label.devouch.view_this_project": "View this Project on DeVouch",
"label.didnt_get_the_givdrop": "Didn’t get the GIVdrop?",
"label.did_the_donation_but_not_confirmed": "I did the donation but it's not confirmed.",
"label.discover_our_roadmap": "discover our roadmap",
@@ -1661,11 +1661,11 @@
"project.givback_toast.description.non_verified_owner_rejected_2": " or Discord support for more instructions.",
"project.givback_toast.description.non_verified_owner_submitted": "Exciting news! Your application has been submitted and is in the queue for review by our GIVbacks Eligibility review team. We will get back to you with a response within 1-2 weeks.",
"project.givback_toast.description.non_verified_public": "GIVbacks are currently only awarded for donations made to GIVbacks Eligible projects on Ethereum. Your contribution still matters, even if it doesn't generate GIVbacks!",
- "project.givback_toast.description.verified_owner_not_eligible": "Your project has been vouched for by Giveth Verifiers and can now benefit from GIVpower! {stakeLock} to get GIVpower and boost this project's position on the projects page! Note: This project can be boosted, but does not yield GIVbacks.",
- "project.givback_toast.description.verified_public": "Donations of ${value} or more are eligible for GIVbacks. Boost this project to increase its rewards percentage and visibility on the projects page!",
- "project.givback_toast.description.verified_public_not_eligible": "{stakeLock} to get GIVpower and boost this project's position on the projects page! Note: This project can be boosted, but does not yield GIVbacks.",
- "project.givback_toast.title.non_verified_owner": "Is your project creating or supporting public goods?",
"project.givback_toast.description.verified_owner": "Boost your project to increase its GIVbacks percentage and help it appear higher on the projects page!",
+ "project.givback_toast.description.verified_public": "Donations of ${value} or more are eligible for GIVbacks. Boost this project to increase its rewards percentage and visibility on the projects page!",
+ "project.givback_toast.description.verified_owner_not_eligible": "Your project has been vouched for by Giveth Verifiers and can now benefit from GIVpower! Stake and lock your GIV tokens to boost this project and make it more visible on the projects page. However, donating to this project won't yield GIVbacks to donors.",
+ "project.givback_toast.title.non_verified_owner": "Is your project creating or supporting public goods?",
+ "project.givback_toast.description.verified_public_not_eligible": "{stakeLock} your GIV tokens to get GIVpower. Boost this project make it more visible on the projects page! Note that while this project is eligible to be boosted with GIVpower, it will not yield GIVbacks to it's donors.",
"project.givback_toast.title.non_verified_owner_cancelled": "Project Cancelled",
"project.givback_toast.title.non_verified_owner_deactive": "Project Deactivated",
"project.givback_toast.title.non_verified_owner_draft": "Publish your project today!",
diff --git a/lang/es.json b/lang/es.json
index ba3f463fba..df20895f16 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -308,10 +308,10 @@
"label.deposit_confirmed": "Depósito confirmado",
"label.deposit_or_stream_balance": "Deposita Tokens o usa el Saldo de Transmisión",
"label.deposit_token_use_balance": "Deposita Tokens o usa el Saldo de Transmisión",
- "label.devouch.go_to_devouch": "Ir a DeVouch",
- "label.devouch.description.vouch_this_project": "Con DeVouch, puedes señalar tu apoyo a este proyecto atestiguando su legitimidad, lo que potencialmente aumentará los beneficios que recibe en Giveth.",
+ "label.devouch.attest_on_devouch": "Certificar en DeVouch",
+ "label.devouch.if_you_are_eligible": "Si eres un verificador elegible de Giveth, puedes avalar la legitimidad de este proyecto, potencialmente aumentando los beneficios que recibe en Giveth.",
"label.devouch.learn_more_about_devouch": "Más información sobre DeVouch y la verificación descentralizada",
- "label.devouch.title.vouch_this_project": "Avalar este Proyecto",
+ "label.devouch.view_this_project": "Ver este proyecto en DeVouch",
"label.didnt_get_the_givdrop": "¿No has recibido el GIVdrop?",
"label.did_the_donation_but_not_confirmed": "Hice la donación pero no está confirmada.",
"label.discover_our_roadmap": "descubre nuestra hoja de ruta",
@@ -1661,11 +1661,11 @@
"project.givback_toast.description.non_verified_owner_rejected_2": " o al soporte de Discord para más instrucciones.",
"project.givback_toast.description.non_verified_owner_submitted": "¡Noticias emocionantes! Tu solicitud ha sido enviada y está en la cola para ser revisada por nuestro equipo de revisión de elegibilidad para GIVbacks. Te responderemos en un plazo de 1-2 semanas.",
"project.givback_toast.description.non_verified_public": "Actualmente, los GIVbacks solo se otorgan por donaciones hechas a proyectos elegibles para GIVbacks en Ethereum. ¡Tu contribución sigue siendo importante, incluso si no genera GIVbacks!",
- "project.givback_toast.description.verified_owner_not_eligible": "Tu proyecto ha sido avalado por los Verificadores de Giveth y ahora puede beneficiarse de GIVpower. {stakeLock} para obtener GIVpower y mejorar la posición de este proyecto en la página de proyectos. Nota: Este proyecto puede ser impulsado, pero no genera GIVbacks.",
- "project.givback_toast.description.verified_public": "Las donaciones de ${value} o más son elegibles para recibir GIVbacks. ¡Impulsa este proyecto para aumentar su porcentaje de recompensas y su visibilidad en la página de proyectos!",
- "project.givback_toast.description.verified_public_not_eligible": "{stakeLock} para obtener GIVpower y mejorar la posición de este proyecto en la página de proyectos. Nota: Este proyecto puede ser impulsado, pero no genera GIVbacks.",
+ "project.givback_toast.description.verified_owner": "Impulsa tu proyecto para aumentar la cantidad de GIVbacks que reciben tus donantes en Ethereum y aumentar su visibilidad entre otros proyectos.",
+ "project.givback_toast.description.verified_owner_not_eligible": "Tu proyecto ha sido avalado por los Verificadores de Giveth y ahora puede beneficiarse de GIVpower. Haz stake y bloquea tus tokens GIV para impulsar este proyecto y hacerlo más visible en la página de proyectos. Sin embargo, donar a este proyecto no generará GIVbacks para los donantes.",
+ "project.givback_toast.description.verified_public": "Las donaciones de ${value} o más son elegibles para recibir GIVbacks. ¡Impulsa este proyecto para aumentar su porcentaje de recompensas y su visibilidad en la página de proyectos!",
+ "project.givback_toast.description.verified_public_not_eligible": "{stakeLock} tus GIV tokens para obtener GIVpower. ¡Impulsa este proyecto para hacerlo más visible en la página de proyectos! Ten en cuenta que aunque este proyecto es elegible para ser impulsado con GIVpower, no generará GIVbacks para sus donantes.",
"project.givback_toast.title.non_verified_owner": "¿Tu proyecto está creando o apoyando bienes públicos?",
- "project.givback_toast.description.verified_owner": "Impulsa tu proyecto para aumentar su porcentaje de GIVbacks y ayudarlo a aparecer más alto en la página de proyectos.",
"project.givback_toast.title.non_verified_owner_cancelled": "Estado Cancelado",
"project.givback_toast.title.non_verified_owner_deactive": "Modo Desactivado",
"project.givback_toast.title.non_verified_owner_draft": "¡Publica tu proyecto hoy!",
diff --git a/lang/t_ca.json b/lang/t_ca.json
index 028a0d1c3f..d2a5d33f70 100644
--- a/lang/t_ca.json
+++ b/lang/t_ca.json
@@ -151,6 +151,7 @@
"page.project.preview_hint": "Aquesta és una previsualització del teu projecte.",
"project.givback_toast.description.non_verified_owner": "Pots demostrar que el teu projecte està proporcionant un bé públic? La verificació et dóna accés a una gran quantitat de beneficis com recompenses per a donants, major visibilitat i formes addicionals d'obtenir fons!",
"project.givback_toast.description.non_verified_public": "Actualment, els GIVbacks només es concedeixen per donacions fetes a projectes verificats. La teva contribució encara és important, encara que no generi GIVbacks!",
+ "project.givback_toast.description.verified_owner": "Impulsa el teu projecte per augmentar el seu percentatge de recompenses i fer-lo més visible a la pàgina de projectes!",
"project.givback_toast.description.verified_public": "Els donants de projectes verificats són recompensats amb GIV. Impulsa aquest projecte per augmentar el seu percentatge de recompenses i fer-lo més visible a la pàgina de projectes!",
"project.givback_toast.title.non_verified_owner": "Porta el teu projecte al següent nivell amb la Verificació!",
"project.givback_toast.title.non_verified_public": "Per què no hi ha GIVbacks?",
diff --git a/lang/t_es.json b/lang/t_es.json
index 183125dbfc..458545900a 100644
--- a/lang/t_es.json
+++ b/lang/t_es.json
@@ -117,6 +117,7 @@
"page.project.preview_hint": "Esta es una vista previa de tu proyecto.",
"project.givback_toast.description.non_verified_owner": "¿Puedes demostrar que tu proyecto está proporcionando un bien público? ¡La verificación te da acceso a una gran cantidad de beneficios como recompensas para los donantes, mayor visibilidad y formas adicionales de recaudar fondos!",
"project.givback_toast.description.non_verified_public": "Los GIVbacks se otorgan actualmente solo por donaciones realizadas a proyectos verificados. ¡Tu contribución sigue siendo importante, incluso si no genera GIVbacks!",
+ "project.givback_toast.description.verified_owner": "¡Impulsa tu proyecto para aumentar su porcentaje de recompensas y hacerlo más visible en la página de proyectos!",
"project.givback_toast.description.verified_public": "Los donantes a proyectos verificados son recompensados con GIV. ¡Impulsa este proyecto para aumentar su porcentaje de recompensas y hacerlo más visible en la página de proyectos!",
"project.givback_toast.title.non_verified_owner": "¡Lleva tu proyecto al siguiente nivel con la Verificación!",
"project.givback_toast.title.non_verified_public": "¿Por qué no hay GIVbacks?",
diff --git a/package.json b/package.json
index 1d3783ba6c..1d85dde9a0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "givethdapp",
- "version": "2.32.2",
+ "version": "2.32.1",
"private": true,
"scripts": {
"build": "next build",
@@ -78,7 +78,6 @@
"devDependencies": {
"@babel/preset-typescript": "^7.23.3",
"@next/bundle-analyzer": "^14.1.0",
- "@tanstack/react-query-devtools": "^5.58.0",
"@testing-library/cypress": "^10.0.1",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^14.2.1",
diff --git a/src/apollo/apolloClient.ts b/src/apollo/apolloClient.ts
index 4cedd8970d..6bf978265c 100644
--- a/src/apollo/apolloClient.ts
+++ b/src/apollo/apolloClient.ts
@@ -1,10 +1,5 @@
import { useMemo } from 'react';
-import {
- ApolloClient,
- InMemoryCache,
- ApolloLink,
- NormalizedCacheObject,
-} from '@apollo/client';
+import { ApolloClient, InMemoryCache, ApolloLink } from '@apollo/client';
import { RetryLink } from '@apollo/client/link/retry';
import { setContext } from '@apollo/client/link/context';
import { onError } from '@apollo/client/link/error';
@@ -19,21 +14,20 @@ import { signOut } from '@/features/user/user.thunks';
import config from '@/configuration';
import { setShowSignWithWallet } from '@/features/modal/modal.slice';
-let apolloClient: ApolloClient | undefined;
+let apolloClient: any;
const ssrMode = isSSRMode;
export const APOLLO_STATE_PROP_NAME = '__APOLLO_STATE__';
-// Parses headers into the Headers object
-const parseHeaders = (rawHeaders: string) => {
+const parseHeaders = (rawHeaders: any) => {
const headers = new Headers();
// Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
// https://tools.ietf.org/html/rfc7230#section-3.2
const preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
- preProcessedHeaders.split(/\r?\n/).forEach((line: string) => {
+ preProcessedHeaders.split(/\r?\n/).forEach((line: any) => {
const parts = line.split(':');
- const key = parts.shift()?.trim();
+ const key = parts.shift().trim();
if (key) {
const value = parts.join(':').trim();
headers.append(key, value);
@@ -42,7 +36,6 @@ const parseHeaders = (rawHeaders: string) => {
return headers;
};
-// Custom fetch logic with file upload handling
const uploadFetch = (url: string, options: any) =>
new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
@@ -56,11 +49,8 @@ const uploadFetch = (url: string, options: any) =>
'responseURL' in xhr
? xhr.responseURL
: opts.headers.get('X-Request-URL');
- // TypeScript fix: Explicitly cast `xhr` to `XMLHttpRequest` to access responseText
const body =
- 'response' in xhr
- ? xhr.response
- : (xhr as XMLHttpRequest).responseText;
+ 'response' in xhr ? xhr.response : (xhr as any).responseText;
resolve(new Response(body, opts));
};
xhr.onerror = () => {
@@ -86,16 +76,14 @@ const uploadFetch = (url: string, options: any) =>
xhr.send(options.body);
});
-// Custom fetch function to determine when to use upload fetch or standard fetch
-const customFetch = (uri: string, options: any) => {
+const customFetch = (uri: any, options: any) => {
if (options.useUpload) {
return uploadFetch(uri, options);
}
return fetch(uri, options);
};
-// Creates the Apollo Client with the custom link setup
-function createApolloClient(): ApolloClient {
+function createApolloClient() {
let userWalletAddress: string | null;
if (!ssrMode) {
userWalletAddress = localStorage.getItem(StorageLabel.USER);
@@ -103,13 +91,11 @@ function createApolloClient(): ApolloClient {
const retryLink = new RetryLink();
- // Custom link for handling file uploads
const httpLink = createUploadLink({
uri: config.BACKEND_LINK,
fetch: customFetch as any,
});
- // Auth link to add Authorization and locale headers
const authLink = setContext((_, { headers }) => {
let locale: string | null = !ssrMode
? localStorage.getItem(StorageLabel.LOCALE)
@@ -131,13 +117,12 @@ function createApolloClient(): ApolloClient {
};
});
- // Error handling link
const errorLink = onError(({ graphQLErrors, networkError, operation }) => {
if (graphQLErrors) {
console.log('operation', operation);
graphQLErrors.forEach(err => {
console.error('err', JSON.stringify(err));
- const { message } = err;
+ const { message, locations, path } = err;
if (message.toLowerCase().includes('authentication required')) {
console.log(Date.now(), 'sign out from graphQL');
// removes token and user from store
@@ -205,10 +190,7 @@ function createApolloClient(): ApolloClient {
});
}
-// Initialize Apollo Client for SSR and client-side rendering
-export function initializeApollo(
- initialState: any = null,
-): ApolloClient {
+export function initializeApollo(initialState = null) {
const _apolloClient = apolloClient ?? createApolloClient();
// If your page has Next.js data fetching methods that use Apollo Client, the initial state
@@ -220,7 +202,7 @@ export function initializeApollo(
// Merge the existing cache into data passed from getStaticProps/getServerSideProps
const data = merge(initialState, existingCache, {
// combine arrays using object equality (like in sets)
- arrayMerge: (destinationArray: any[], sourceArray: any[]) => [
+ arrayMerge: (destinationArray, sourceArray) => [
...sourceArray,
...destinationArray.filter(d =>
sourceArray.every(s => !isEqual(d, s)),
@@ -239,11 +221,7 @@ export function initializeApollo(
return _apolloClient;
}
-// Adds Apollo Client's state to pageProps
-export function addApolloState(
- client: ApolloClient,
- pageProps: any,
-) {
+export function addApolloState(client: any, pageProps: any) {
if (pageProps?.props) {
pageProps.props[APOLLO_STATE_PROP_NAME] = client.cache.extract();
}
@@ -251,12 +229,10 @@ export function addApolloState(
return pageProps;
}
-// Custom React hook to use Apollo Client
export function useApollo(pageProps: any) {
const state = pageProps[APOLLO_STATE_PROP_NAME];
return useMemo(() => initializeApollo(state), [state]);
}
-// Export the client instance
-export const client: ApolloClient = initializeApollo();
+export const client = initializeApollo();
diff --git a/src/apollo/gql/gqlProjects.ts b/src/apollo/gql/gqlProjects.ts
index 6546c7d2c0..cc3d8a260b 100644
--- a/src/apollo/gql/gqlProjects.ts
+++ b/src/apollo/gql/gqlProjects.ts
@@ -804,9 +804,3 @@ export const FETCH_RECURRING_DONATIONS_BY_DATE = gql`
}
}
`;
-
-export const DELETE_DRAFT_PROJECT = gql`
- mutation ($projectId: Float!) {
- deleteDraftProject(projectId: $projectId)
- }
-`;
diff --git a/src/components/VerificationBadge.tsx b/src/components/VerificationBadge.tsx
index 3a1d001596..b741d8701c 100644
--- a/src/components/VerificationBadge.tsx
+++ b/src/components/VerificationBadge.tsx
@@ -3,12 +3,15 @@ import { EVerificationStatus } from '@/apollo/types/types';
import { Badge, EBadgeStatus } from './Badge';
interface IProps {
- isVerified?: boolean;
+ isGivbackEligible?: boolean;
verificationStatus?: EVerificationStatus;
}
-const VerificationBadge: FC = ({ isVerified, verificationStatus }) => {
- const verStatus = isVerified
+const VerificationBadge: FC = ({
+ isGivbackEligible,
+ verificationStatus,
+}) => {
+ const verStatus = isGivbackEligible
? EVerificationStatus.VERIFIED
: verificationStatus !== EVerificationStatus.VERIFIED
? verificationStatus
diff --git a/src/components/badges/ShareLikeBadge.tsx b/src/components/badges/ShareLikeBadge.tsx
index 9feb1d256d..d55776d3fd 100644
--- a/src/components/badges/ShareLikeBadge.tsx
+++ b/src/components/badges/ShareLikeBadge.tsx
@@ -54,7 +54,7 @@ const Wrapper = styled(FlexCenter)`
const BadgeText = styled(ButtonText)<{ $fromDonate?: boolean | null }>`
color: ${props =>
props.$fromDonate ? brandColors.pinky[500] : neutralColors.gray[700]};
- text-transform: ${props => (props.$fromDonate ? 'none' : '')};
+ text-transform: ${props => (props.$fromDonate ? 'none' : 'uppercase')};
margin: 0 auto;
`;
diff --git a/src/components/modals/GIVdropHarvestModal.tsx b/src/components/modals/GIVdropHarvestModal.tsx
index f0ed5d0db5..46d0e5681b 100644
--- a/src/components/modals/GIVdropHarvestModal.tsx
+++ b/src/components/modals/GIVdropHarvestModal.tsx
@@ -90,7 +90,7 @@ export const GIVdropHarvestModal: FC = ({
const chainId = chain?.id;
const sdh = new SubgraphDataHelper(currentValues.data);
const givTokenDistroBalance = sdh.getGIVTokenDistroBalance();
- const { data: givPrice } = useFetchGIVPrice();
+ const { data: givPrice } = useFetchGIVPrice(chainId);
useEffect(() => {
const bnGIVback = BigInt(givTokenDistroBalance.givback);
diff --git a/src/components/views/project/ProjectBadges.tsx b/src/components/views/project/ProjectBadges.tsx
index 7b31bcbf35..2ed52e7df8 100644
--- a/src/components/views/project/ProjectBadges.tsx
+++ b/src/components/views/project/ProjectBadges.tsx
@@ -17,12 +17,22 @@ import { IconWithTooltip } from '@/components/IconWithToolTip';
const ProjectBadges = () => {
const { projectData } = useProjectContext();
- const { verified, isGivbackEligible, qfRounds, campaigns } =
- projectData || {};
+ const {
+ verified: projectVerified,
+ isGivbackEligible,
+ qfRounds,
+ campaigns,
+ } = projectData || {};
const { formatMessage } = useIntl();
const isQF = hasActiveRound(qfRounds);
+ const verified = projectVerified || isGivbackEligible;
- if (!verified && !isQF && (!campaigns || campaigns.length === 0)) {
+ if (
+ !verified &&
+ !isGivbackEligible &&
+ !isQF &&
+ (!campaigns || campaigns.length === 0)
+ ) {
return null;
}
@@ -92,9 +102,11 @@ const ProjectBadges = () => {
};
const CustomFlex = styled(Flex)`
+ overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
- margin-bottom: 24px;
+ margin-bottom: -3px;
+ padding-top: 8px;
`;
export const TooltipContent = styled.div`
diff --git a/src/components/views/project/ProjectDevouchBox.tsx b/src/components/views/project/ProjectDevouchBox.tsx
index eab38108c8..a076c327d2 100644
--- a/src/components/views/project/ProjectDevouchBox.tsx
+++ b/src/components/views/project/ProjectDevouchBox.tsx
@@ -38,12 +38,12 @@ const ProjectDevouchBox = () => {
{formatMessage({
- id: 'label.devouch.title.vouch_this_project',
+ id: 'label.devouch.view_this_project',
})}
{formatMessage({
- id: 'label.devouch.description.vouch_this_project',
+ id: 'label.devouch.if_you_are_eligible',
})}{' '}
@@ -62,7 +62,7 @@ const ProjectDevouchBox = () => {
>
{
const isGivbackEligible = projectData?.isGivbackEligible;
const { givbackFactor } = projectData || {};
const isOwnerGivbackEligible = isGivbackEligible && isAdmin;
- const isOwnerNotVerified = !isVerified && isAdmin;
+ const isOwnerNotVerified = !isGivbackEligible && isAdmin;
const isPublicGivbackEligible = isGivbackEligible && !isAdmin;
const isPublicVerifiedNotEligible =
isVerified && !isAdmin && !isGivbackEligible;
@@ -92,7 +92,35 @@ const ProjectGIVbackToast = () => {
const givbackFactorPercent = ((givbackFactor || 0) * 100).toFixed();
- if (isOwnerGivbackEligible) {
+ if (isPublicGivbackEligible) {
+ if (givbackFactor !== 0) {
+ title = formatMessage(
+ {
+ id: `${useIntlTitle}verified_public_3`,
+ },
+ {
+ percent: givbackFactorPercent,
+ // value: GIVBACKS_DONATION_QUALIFICATION_VALUE_USD,
+ },
+ );
+ }
+ description = formatMessage(
+ {
+ id: `${useIntlDescription}verified_public`,
+ },
+ {
+ value: GIVBACKS_DONATION_QUALIFICATION_VALUE_USD,
+ },
+ );
+ link = links.GIVPOWER_DOC;
+ Button = (
+ }
+ />
+ );
+ } else if (isOwnerGivbackEligible) {
if (givbackFactor !== 0) {
title = formatMessage(
{
@@ -224,7 +252,7 @@ const ProjectGIVbackToast = () => {
},
{
stakeLock: (
-
+
{formatMessage({ id: 'label.stake_and_lock' })}{' '}
),
@@ -242,18 +270,9 @@ const ProjectGIVbackToast = () => {
title = formatMessage({
id: `${useIntlTitle}verified_owner_not_eligible`,
});
- description = formatMessage(
- {
- id: `${useIntlDescription}verified_owner_not_eligible`,
- },
- {
- stakeLock: (
-
- {formatMessage({ id: 'label.stake_and_lock' })}{' '}
-
- ),
- },
- );
+ description = formatMessage({
+ id: `${useIntlDescription}verified_owner_not_eligible`,
+ });
link = links.GIVPOWER_DOC;
Button = (
{
icon={}
/>
);
- } else if (isPublicGivbackEligible) {
- if (givbackFactor !== 0) {
- title =
- formatMessage({
- id: `${useIntlTitle}verified_public_1`,
- }) +
- Math.round(+(givbackFactor || 0) * 100) +
- '%' +
- formatMessage({
- id: `${useIntlTitle}verified_public_2`,
- });
- }
- description = formatMessage(
- {
- id: `${useIntlDescription}verified_public`,
- },
- {
- value: GIVBACKS_DONATION_QUALIFICATION_VALUE_USD,
- },
- );
- Button = (
- }
- />
- );
} else {
title = formatMessage({
id: `${useIntlTitle}non_verified_public`,
diff --git a/src/components/views/project/ProjectHeader.tsx b/src/components/views/project/ProjectHeader.tsx
index cbd9a9c9b3..a5ba55d5db 100644
--- a/src/components/views/project/ProjectHeader.tsx
+++ b/src/components/views/project/ProjectHeader.tsx
@@ -56,7 +56,7 @@ const ProjectImage = styled.img`
border-radius: 16px;
width: 100%;
object-fit: cover; // Ensures the image covers the entire container
- height: 430px;
+ height: 380px;
position: relative;
`;
@@ -65,7 +65,7 @@ const GradientOverlay = styled.div`
top: 0;
left: 0;
width: 100%;
- height: 430px;
+ height: 380px;
background: linear-gradient(
to top,
rgba(1, 1, 27, 0.6),
diff --git a/src/components/views/project/ProjectIndex.tsx b/src/components/views/project/ProjectIndex.tsx
index 0e9cc06347..f1a691d950 100644
--- a/src/components/views/project/ProjectIndex.tsx
+++ b/src/components/views/project/ProjectIndex.tsx
@@ -180,7 +180,7 @@ const ProjectIndex: FC = () => {
orgLabel={projectData?.organization?.label}
/>
-