Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cosmic CMS updates #38163

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ import Container from './container'
import cn from 'classnames'
import { EXAMPLE_PATH } from '@/lib/constants'

export default function Alert({ preview }) {
type AlertProps = {
preview: boolean
}

const Alert = (props: AlertProps) => {
const { preview } = props
return (
<div
className={cn('border-b', {
Expand All @@ -14,7 +19,7 @@ export default function Alert({ preview }) {
<div className="py-2 text-center text-sm">
{preview ? (
<>
This is page is a preview.{' '}
This page is a preview.{' '}
<a
href="/api/exit-preview"
className="underline hover:text-cyan duration-200 transition-colors"
Expand All @@ -40,3 +45,5 @@ export default function Alert({ preview }) {
</div>
)
}

export default Alert
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import Image from 'next/image'

export default function Avatar({ name, picture }) {
type AvatarProps = {
name: string
picture: string
}

const Avatar = (props: AvatarProps) => {
const { name, picture } = props

return (
<div className="flex items-center">
<div className="w-12 h-12 relative mr-4">
Expand All @@ -17,3 +24,5 @@ export default function Avatar({ name, picture }) {
</div>
)
}

export default Avatar
3 changes: 0 additions & 3 deletions examples/cms-cosmic/components/container.js

This file was deleted.

12 changes: 12 additions & 0 deletions examples/cms-cosmic/components/container.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { ReactNode } from 'react'

type ContainerProps = {
children: ReactNode
}

const Container = (props: ContainerProps) => {
const { children } = props
return <div className="container mx-auto px-5">{children}</div>
}

export default Container
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@ import cn from 'classnames'
import Link from 'next/link'
import Imgix from 'react-imgix'

export default function CoverImage({ title, url, slug }) {
type CoverImageProps = {
title
url
slug
}
const CoverImage = (props: CoverImageProps) => {
const { title, url, slug } = props

const image = (
<Imgix
src={url}
Expand Down Expand Up @@ -33,3 +40,4 @@ export default function CoverImage({ title, url, slug }) {
</div>
)
}
export default CoverImage
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import { parseISO, format } from 'date-fns'

export default function Date({ dateString }) {
type DateProps = {
dateString: string
}

const Date = (props: DateProps) => {
const { dateString } = props
const date = parseISO(dateString)
return <time dateTime={dateString}>{format(date, 'LLLL d, yyyy')}</time>
}

export default Date
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Container from './container'
import { EXAMPLE_PATH } from '@/lib/constants'

export default function Footer() {
const Footer = () => {
return (
<footer className="bg-accent-1 border-t border-accent-2">
<Container>
Expand All @@ -28,3 +28,5 @@ export default function Footer() {
</footer>
)
}

export default Footer
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Link from 'next/link'

export default function Header() {
const Header = () => {
return (
<h2 className="text-2xl md:text-4xl font-bold tracking-tight md:tracking-tighter leading-tight mb-20 mt-8">
<Link href="/">
Expand All @@ -10,3 +10,5 @@ export default function Header() {
</h2>
)
}

export default Header
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,20 @@ import Avatar from './avatar'
import Date from './date'
import CoverImage from './cover-image'
import Link from 'next/link'
import { AuthorType, ImgixType } from 'interfaces'

type HeroPostProps = {
title: string
coverImage: ImgixType
date: string
excerpt: string
author: AuthorType
slug: string
}

const HeroPost = (props: HeroPostProps) => {
const { title, coverImage, date, excerpt, author, slug } = props

export default function HeroPost({
title,
coverImage,
date,
excerpt,
author,
slug,
}) {
return (
<section>
<div className="mb-8 md:mb-16">
Expand Down Expand Up @@ -38,3 +43,5 @@ export default function HeroPost({
</section>
)
}

export default HeroPost
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CMS_NAME, CMS_URL } from '@/lib/constants'

export default function Intro() {
const Intro = () => {
return (
<section className="flex-col md:flex-row flex items-center md:justify-between mt-16 mb-16 md:mb-12">
<h1 className="text-6xl md:text-8xl font-bold tracking-tighter leading-tight md:pr-8">
Expand All @@ -26,3 +26,5 @@ export default function Intro() {
</section>
)
}

export default Intro
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@ import Footer from './footer'
import Meta from './meta'
import 'lazysizes'
import 'lazysizes/plugins/parent-fit/ls.parent-fit'
import { ReactNode } from 'react'

export default function Layout({ preview, children }) {
type LayoutProps = {
preview: boolean
children: ReactNode
}

const Layout = ({ preview, children }: LayoutProps) => {
return (
<>
<Meta />
Expand All @@ -16,3 +22,5 @@ export default function Layout({ preview, children }) {
</>
)
}

export default Layout
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Head from 'next/head'
import { CMS_NAME, HOME_OG_IMAGE_URL } from '@/lib/constants'

export default function Meta() {
const Meta = () => {
return (
<Head>
<link
Expand Down Expand Up @@ -40,3 +40,5 @@ export default function Meta() {
</Head>
)
}

export default Meta
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import { PostType } from 'interfaces'
import PostPreview from './post-preview'

export default function MoreStories({ posts }) {
type MoreStoriesProps = {
posts: PostType[]
}

const MoreStories = (props: MoreStoriesProps) => {
const { posts } = props
return (
<section>
<h2 className="mb-8 text-6xl md:text-7xl font-bold tracking-tighter leading-tight">
Expand All @@ -22,3 +28,5 @@ export default function MoreStories({ posts }) {
</section>
)
}

export default MoreStories
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import markdownStyles from './markdown-styles.module.css'

export default function PostBody({ content }) {
type PostBodyProps = {
content: string
}

const PostBody = (props: PostBodyProps) => {
const { content } = props
return (
<div className="max-w-2xl mx-auto">
<div
Expand All @@ -10,3 +15,5 @@ export default function PostBody({ content }) {
</div>
)
}

export default PostBody
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@ import Avatar from './avatar'
import Date from './date'
import CoverImage from './cover-image'
import PostTitle from './post-title'
import { AuthorType, ImgixType } from 'interfaces'

export default function PostHeader({ title, coverImage, date, author }) {
type PostHeaderProps = {
title: string
coverImage: ImgixType
date: string
author: AuthorType
}

const PostHeader = (props: PostHeaderProps) => {
const { title, coverImage, date, author } = props
return (
<>
<PostTitle>{title}</PostTitle>
Expand All @@ -14,11 +23,14 @@ export default function PostHeader({ title, coverImage, date, author }) {
/>
</div>
<div className="mb-8 md:mb-16 sm:mx-0">
<CoverImage title={title} url={coverImage.imgix_url} />
<CoverImage title={title} url={coverImage.imgix_url} slug={''} />
</div>
<div className="max-w-2xl mx-auto">
<div className="block md:hidden mb-6">
<Avatar name={author.name} picture={author.picture} />
<Avatar
name={author.title}
picture={author.metadata.picture.imgix_url}
/>
</div>
<div className="mb-6 text-lg">
<Date dateString={date} />
Expand All @@ -27,3 +39,5 @@ export default function PostHeader({ title, coverImage, date, author }) {
</>
)
}

export default PostHeader
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,20 @@ import Avatar from './avatar'
import Date from './date'
import CoverImage from './cover-image'
import Link from 'next/link'
import { AuthorType, ImgixType } from 'interfaces'

type PostPreviewProps = {
title: string
coverImage: ImgixType
date: string
excerpt: string
author: AuthorType
slug: string
}

const PostPreview = (props: PostPreviewProps) => {
const { title, coverImage, date, excerpt, author, slug } = props

export default function PostPreview({
title,
coverImage,
date,
excerpt,
author,
slug,
}) {
return (
<div>
<div className="mb-5">
Expand All @@ -29,3 +34,5 @@ export default function PostPreview({
</div>
)
}

export default PostPreview
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
export default function PostTitle({ children }) {
import { ReactNode } from 'react'

type PostTitleProps = {
children: ReactNode
}

const PostTitle = (props: PostTitleProps) => {
const { children } = props
return (
<h1 className="text-6xl md:text-7xl lg:text-8xl font-bold tracking-tighter leading-tight md:leading-none mb-12 text-center md:text-left">
{children}
</h1>
)
}
export default PostTitle
3 changes: 0 additions & 3 deletions examples/cms-cosmic/components/section-separator.js

This file was deleted.

5 changes: 5 additions & 0 deletions examples/cms-cosmic/components/section-separator.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const SectionSeparator = () => {
return <hr className="border-accent-2 mt-28 mb-24" />
}

export default SectionSeparator
24 changes: 24 additions & 0 deletions examples/cms-cosmic/interfaces/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export type ImgixType = {
url: string
imgix_url: string
}

export type AuthorType = {
title: string
metadata: {
picture: ImgixType
}
}

export type PostType = {
title: string
slug: string
content: string
created_at: string
metadata: {
cover_image: ImgixType
author: AuthorType
excerpt: string
content: string
}
}
Loading