Files
supabase/apps/www/components/Modules/ModulesNav.tsx
T
a2831e2e69 feat: lw13d4 (#30908)
* lw13:d4

* www queues page (#30907)

* new products menu

* set up cron page

* set up cron page

* placeholder sections

* set up queues page

* update meta

* update Supabase Queues landing page content

* Updated the text to exclude queue creation/management from the API management section

* queues www page

---------

Co-authored-by: Wen Bo Xie <wenbo.xie3@gmail.com>
Co-authored-by: Greg Papas <gregpapas@Gregs-MacBook-Pro.local>

* feat: add queue module (#30853)

* feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
feat: postgres integrations

Create a new global navigation and homepage menu section for the Postgres Integrations category.
reorg: move cron docs into postgres integrations
docs homepage layout

* fix: add pg_cron back to extensions sidebar

* update Supabase Cron docs

* feat: add queues module


feat: add queues module

* remove staging url from screenshots

* remove outdated cron files

* typo

* queues description update

---------

Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: Wen Bo Xie <wenbo.xie3@gmail.com>
Co-authored-by: Oliver Rice <github@oliverrice.com>

* visibility timeout to window

* queues landing page sql example

* capitalize Dashboard

* cron blog post citus data callout update

* added draft of queues feature

* updated features bulleting

* pluralize queues

* fix Queues features page

* Inital bp

* queues docs updates

* format queues docs

* queues blog post updates

* edits

* Update the images for role in the docs quickstart for queues.

* updated images

* update images

* update more images

* Update 2024-12-05-supabase-queues.mdx

* fix breaks

* punchier title

* better ul

* clean up

* Retake screenshots

* grammar

* whitelines

* video + images

* update docs

* blog updates

* blog update

* api snippet

* api snippet fix

* queues features yt video

* api snippet fix

* update docs

* blog update

* api snippet fix and vale

* format

* vale off

* vale off

* blog update

---------

Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
Co-authored-by: Greg Papas <gregpapas@Gregs-MacBook-Pro.local>
Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
Co-authored-by: Oliver Rice <github@oliverrice.com>
Co-authored-by: Terry Sutton <saltcod@gmail.com>
Co-authored-by: Copple <10214025+kiwicopple@users.noreply.github.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
2024-12-05 15:05:47 +00:00

70 lines
2.6 KiB
TypeScript

import React from 'react'
import { cn, IconDocumentation } from 'ui'
import Link from 'next/link'
import { PRODUCT_MODULES_NAMES } from 'shared-data/products'
import SectionContainer from '~/components/Layouts/SectionContainer'
import ProductModules from '~/data/ProductModules'
interface Props {
activePage: PRODUCT_MODULES_NAMES
docsUrl?: string
}
function ModulesNav({ activePage, docsUrl }: Props) {
return (
<nav className="sticky top-0 mb-4 z-30 flex flex-nowrap items-center bg-alternative/90 backdrop-blur-md w-full border-b border-muted">
<SectionContainer className="!py-0 flex gap-3 items-center justify-between">
<div className="w-max flex gap-3 items-center">
{Object.entries(ProductModules).map((obj) => {
const currentModule = obj[1]
return (
<Link
key={currentModule.name}
className={cn(
'flex items-center gap-1.5 px-2 first:-ml-2 py-3 border-b border-transparent text-sm text-foreground-lighter hover:text-foreground',
'focus-visible:ring-2 focus-visible:ring-foreground-lighter focus-visible:text-foreground focus-visible:outline-brand-600',
currentModule.name === activePage && 'border-foreground-light text-foreground'
)}
href={currentModule.url ?? ''}
>
<svg
className="h-4 w-4 group-hover/menu-item:text-foreground group-focus-visible/menu-item:text-foreground"
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="1"
d={currentModule.icon}
stroke="currentColor"
/>
</svg>
<p>{currentModule.name}</p>
</Link>
)
})}
</div>
<div className="flex gap-3 items-center">
{docsUrl && (
<Link
className={cn(
'flex items-center gap-1.5 py-3 border-b border-transparent text-sm text-foreground-lighter hover:text-foreground',
'focus-visible:ring-2 focus-visible:ring-foreground-lighter focus-visible:text-foreground focus-visible:outline-brand-600'
)}
href={docsUrl}
>
<IconDocumentation size={14} strokeWidth={1.2} /> Docs
</Link>
)}
</div>
</SectionContainer>
</nav>
)
}
export default ModulesNav