Merge branch 'master' of https://github.com/oxen-io/oxen-website into fix-404-bugs
This commit is contained in:
commit
9258447a60
|
@ -9,6 +9,7 @@ export function HomeHero() {
|
|||
}}
|
||||
className="absolute bottom-0 left-0 object-cover h-full transform"
|
||||
src="/hero.svg"
|
||||
alt="Hero Landing Page, depicting the integration of privacy and technology"
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -27,10 +27,12 @@ export function HomeHeroBubble() {
|
|||
)}
|
||||
>
|
||||
<p className="mb-1 text-xs desktop:text-base text-secondary">OXEN</p>
|
||||
Welcome to Oxen.
|
||||
<br />
|
||||
We know you have questions;
|
||||
<br /> here are the answers.
|
||||
<h1>
|
||||
Welcome to Oxen.
|
||||
<br />
|
||||
We know you have questions;
|
||||
<br /> here are the answers.
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -27,7 +27,10 @@ export function Article(props: IPost) {
|
|||
<article>
|
||||
<div className="flex flex-col items-center mt-10 mb-16 space-y-4">
|
||||
<Contained>
|
||||
<ArticleSectionFeatureImage featureImage={featureImage} />
|
||||
<ArticleSectionFeatureImage
|
||||
featureImage={featureImage}
|
||||
title={title}
|
||||
/>
|
||||
</Contained>
|
||||
|
||||
<ArticleContained>
|
||||
|
|
|
@ -2,15 +2,16 @@ import { IFigureImage } from '../../../types/cms';
|
|||
|
||||
interface Props {
|
||||
featureImage: IFigureImage;
|
||||
title: string;
|
||||
}
|
||||
|
||||
export function ArticleSectionFeatureImage({ featureImage }: Props) {
|
||||
export function ArticleSectionFeatureImage({ featureImage, title }: Props) {
|
||||
return (
|
||||
<div className="w-full pb-4 desktop:pb-0">
|
||||
<div className="relative w-full mb-4 aspect-w-14 aspect-h-8">
|
||||
<img
|
||||
src={featureImage?.imageUrl}
|
||||
alt={featureImage?.description ?? ''}
|
||||
alt={featureImage?.description ?? title}
|
||||
className="object-cover rounded"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -47,7 +47,7 @@ export function ArticleCard(props: IPost): JSX.Element {
|
|||
<img
|
||||
className="object-cover cursor-pointer"
|
||||
src={`${featureImage?.imageUrl}?w=300`}
|
||||
alt={featureImage?.description}
|
||||
alt={featureImage?.description ?? title}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
@ -57,9 +57,6 @@ export function ArticleCard(props: IPost): JSX.Element {
|
|||
<Link href={href} as={as}>
|
||||
<a>
|
||||
<p
|
||||
style={{
|
||||
maxHeight: '2em',
|
||||
}}
|
||||
className={classNames(
|
||||
isSmall ? 'text-base' : 'text-lg',
|
||||
'font-sans overflow-hidden cursor-pointer mb-3 hover:underline leading-none text-primary',
|
||||
|
|
|
@ -38,6 +38,7 @@ export function ArticleCardFeature(props: IPost) {
|
|||
<img
|
||||
className="object-cover"
|
||||
src={`${featureImage?.imageUrl}?w=600`}
|
||||
alt={featureImage?.description ?? title}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@ export function ArticleCardRow(post: IPost) {
|
|||
{post?.featureImage?.imageUrl && (
|
||||
<img
|
||||
src={post.featureImage?.imageUrl}
|
||||
alt={post.featureImage?.description}
|
||||
alt={post.featureImage?.description ?? post.title}
|
||||
className="object-cover w-full h-full rounded-lg"
|
||||
/>
|
||||
)}
|
||||
|
|
|
@ -22,6 +22,15 @@ const nextConfig = {
|
|||
CONTENTFUL_SPACE_ID: process.env.CONTENTFUL_SPACE_ID,
|
||||
CONTENTFUL_ACCESS_TOKEN: process.env.CONTENTFUL_ACCESS_TOKEN,
|
||||
},
|
||||
async redirects() {
|
||||
return [
|
||||
{
|
||||
source: '/blog/session-the-road-to-monetisation-and-oxen-value-capture',
|
||||
destination: '/blog/session-the-road-to-monetisation',
|
||||
permanent: true,
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = withPlugins([withFonts, withSvgr], nextConfig);
|
||||
|
|
|
@ -11,7 +11,7 @@ import { ISplitPage } from '../types/cms';
|
|||
import { generateTitle, generateURL } from '../utils/metadata';
|
||||
|
||||
interface IPath {
|
||||
params: { page: string; isRoadmap?: boolean; isFAQ?: boolean };
|
||||
params: { page: string };
|
||||
}
|
||||
|
||||
export async function getStaticPaths() {
|
||||
|
@ -95,6 +95,7 @@ function Page({ page, href }: { page: ISplitPage | null; href: string }) {
|
|||
style={{ maxHeight: '33vh' }}
|
||||
src={page?.hero?.imageUrl}
|
||||
className="object-contain w-full"
|
||||
alt={page?.hero?.description ?? pageTitle}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -157,6 +157,9 @@ const Blog = (props: Props) => {
|
|||
|
||||
<div className="flex flex-col w-full mt-12 mb-6 space-y-6 bg-alt">
|
||||
<Contained>
|
||||
<h1 className="mb-2 text-4xl font-medium uppercase font-prompt">
|
||||
Oxen Blogs
|
||||
</h1>
|
||||
{!tag && posts.length && <ArticleCardFeature {...featuredPost} />}
|
||||
|
||||
{tag && (
|
||||
|
|
|
@ -55,6 +55,7 @@ function Roadmap() {
|
|||
<img
|
||||
style={{ maxHeight: '90%' }}
|
||||
src={`img/roadmap-${horizontal ? 'x' : 'y'}.png`}
|
||||
alt="Oxen's Roadmap and Plans for the future."
|
||||
className="w-full"
|
||||
/>
|
||||
</div>
|
||||
|
@ -69,6 +70,7 @@ function Roadmap() {
|
|||
<img
|
||||
style={{ maxHeight: horizontal ? '90%' : 'auto' }}
|
||||
src={`img/session-${horizontal ? 'x' : 'y'}.png`}
|
||||
alt="Session's Roadmap and Plans for the future."
|
||||
className="w-full rounded-md"
|
||||
/>
|
||||
</div>
|
||||
|
@ -79,7 +81,8 @@ function Roadmap() {
|
|||
</h2>
|
||||
<img
|
||||
style={{ maxHeight: '90%' }}
|
||||
src={`img/lokinet-${horizontal ? 'x' : 'y'}.jpg`}
|
||||
src={`img/lokinet-${horizontal ? 'x' : 'y'}.png`}
|
||||
alt="Lokinet's Roadmap and Plans for the future."
|
||||
className="w-full rounded-md"
|
||||
/>
|
||||
</div>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 169 KiB |
Binary file not shown.
After Width: | Height: | Size: 349 KiB |
Binary file not shown.
Before Width: | Height: | Size: 218 KiB |
Binary file not shown.
After Width: | Height: | Size: 583 KiB |
Loading…
Reference in New Issue