feat: feedback button and slider fix (#292)

* feat: feedback button and slider fix
This commit is contained in:
Kalidou Diagne
2025-02-27 11:01:16 +00:00
committed by GitHub
parent fcd9034a36
commit b426083601
3 changed files with 47 additions and 42 deletions

View File

@@ -16,7 +16,7 @@ export const Devcon7Slider = () => {
speed: 500,
slidesToShow: 4.2,
slidesToScroll: 1,
autoplay: true,
autoplay: false,
responsive: [
{
breakpoint: 1400,

View File

@@ -1,40 +1,39 @@
import "@/styles/globals.css"
import { Metadata } from "next"
import Script from "next/script"
import '@/styles/globals.css'
import { Metadata } from 'next'
import Script from 'next/script'
import { siteConfig } from "@/config/site"
import { fontDisplay, fontSans } from "@/lib/fonts"
import { SiteFooter } from "@/components/site-footer"
import { SiteHeader } from "@/components/site-header"
import { TailwindIndicator } from "@/components/tailwind-indicator"
import { siteConfig } from '@/config/site'
import { fontDisplay, fontSans } from '@/lib/fonts'
import { SiteFooter } from '@/components/site-footer'
import { SiteHeader } from '@/components/site-header'
import { TailwindIndicator } from '@/components/tailwind-indicator'
import { fallbackLng, languages } from "../i18n/settings"
import { FloatingFeedbackSidebar } from "@/components/floating-feedback-sidebar"
import { fallbackLng, languages } from '../i18n/settings'
export async function generateStaticParams() {
return languages.map((language) => ({ language }))
}
export const metadata: Metadata = {
metadataBase: new URL("https://appliedzkp.org"),
metadataBase: new URL('https://appliedzkp.org'),
title: {
default: siteConfig.name,
template: `%s - ${siteConfig.name}`,
},
description: siteConfig.description,
themeColor: [
{ media: "(prefers-color-scheme: light)", color: "white" },
{ media: "(prefers-color-scheme: dark)", color: "black" },
{ media: '(prefers-color-scheme: light)', color: 'white' },
{ media: '(prefers-color-scheme: dark)', color: 'black' },
],
icons: {
icon: "/favicon.svg",
shortcut: "/favicon.svg",
apple: "/apple-touch-icon.png",
icon: '/favicon.svg',
shortcut: '/favicon.svg',
apple: '/apple-touch-icon.png',
},
openGraph: {
images: [
{
url: "/og-image.png",
url: '/og-image.png',
width: 1200,
height: 630,
},
@@ -75,9 +74,8 @@ export default function RootLayout({ children, params }: RootLayoutProps) {
<head />
<body
suppressHydrationWarning
className={"min-h-screen bg-background antialiased"}
className={'min-h-screen bg-background antialiased'}
>
<FloatingFeedbackSidebar />
<div className="relative flex min-h-screen flex-col">
<SiteHeader lang={lang} />
<div className="flex-1">{children}</div>

View File

@@ -1,17 +1,17 @@
"use client"
'use client'
import Image from "next/image"
import Link from "next/link"
import Image from 'next/image'
import Link from 'next/link'
import { LangProps } from "@/types/common"
import { NavItem } from "@/types/nav"
import { siteConfig } from "@/config/site"
import { cn } from "@/lib/utils"
import { useAppSettings } from "@/hooks/useAppSettings"
import { useTranslation } from "@/app/i18n/client"
import { LangProps } from '@/types/common'
import { NavItem } from '@/types/nav'
import { siteConfig } from '@/config/site'
import { cn } from '@/lib/utils'
import { useAppSettings } from '@/hooks/useAppSettings'
import { useTranslation } from '@/app/i18n/client'
import { Icons } from "./icons"
import { AppContent } from "./ui/app-content"
import { Icons } from './icons'
import { AppContent } from './ui/app-content'
const ItemLabel = ({
label,
@@ -42,11 +42,11 @@ const LinksWrapper = ({
children: React.ReactNode
className?: string
}) => {
return <div className={cn("flex flex-col gap-4", className)}>{children}</div>
return <div className={cn('flex flex-col gap-4', className)}>{children}</div>
}
export function SiteFooter({ lang }: LangProps["params"]) {
const { t } = useTranslation(lang, "common")
export function SiteFooter({ lang }: LangProps['params']) {
const { t } = useTranslation(lang, 'common')
const { MAIN_NAV } = useAppSettings(lang)
@@ -63,10 +63,10 @@ export function SiteFooter({ lang }: LangProps["params"]) {
className="h-36 w-36"
/>
<span className="text-center font-sans text-sm leading-[21px] md:text-left">
{t("footer.description")}
{t('footer.description')}
</span>
</div>
<div className="order-2 grid grid-cols-1 justify-between gap-10 uppercase lg:grid-cols-4 lg:gap-0">
<div className="order-2 grid grid-cols-1 justify-between gap-10 uppercase lg:grid-cols-5 lg:gap-0">
<LinksWrapper>
{MAIN_NAV.map(
(
@@ -77,7 +77,7 @@ export function SiteFooter({ lang }: LangProps["params"]) {
<Link
key={indexKey}
href={external ? href : `/${lang}${href}`}
target={external ? "_blank" : undefined}
target={external ? '_blank' : undefined}
>
<ItemLabel label={title} />
</Link>
@@ -99,7 +99,7 @@ export function SiteFooter({ lang }: LangProps["params"]) {
rel="noreferrer"
className="flex items-center gap-2"
>
<ItemLabel label={t("menu.jobs")} external />
<ItemLabel label={t('menu.jobs')} external />
</Link>
<Link
href={siteConfig.links.report}
@@ -107,7 +107,7 @@ export function SiteFooter({ lang }: LangProps["params"]) {
rel="noreferrer"
className="flex items-center gap-2"
>
<ItemLabel label={t("menu.report")} external />
<ItemLabel label={t('menu.report')} external />
</Link>
<Link
href={siteConfig.links.firstGoodIssue}
@@ -115,7 +115,7 @@ export function SiteFooter({ lang }: LangProps["params"]) {
rel="noreferrer"
className="flex items-center gap-2"
>
<ItemLabel label={t("menu.firstGoodIssue")} external />
<ItemLabel label={t('menu.firstGoodIssue')} external />
</Link>
</LinksWrapper>
<LinksWrapper>
@@ -174,19 +174,26 @@ export function SiteFooter({ lang }: LangProps["params"]) {
</Link>
</LinksWrapper>
<LinksWrapper>
<Link
href={siteConfig.links.discord}
target="_blank"
rel="noreferrer"
>
<ItemLabel label="Feedback" />
</Link>
<Link
href={siteConfig.links.privacyPolicy}
target="_blank"
rel="noreferrer"
>
<ItemLabel label={t("footer.privacyPolicy")} />
<ItemLabel label={t('footer.privacyPolicy')} />
</Link>
<Link
href={siteConfig.links.termOfUse}
target="_blank"
rel="noreferrer"
>
<ItemLabel label={t("footer.termsOfUse")} />
<ItemLabel label={t('footer.termsOfUse')} />
</Link>
</LinksWrapper>
</div>