Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add responsive for components of parking mode
Browse files Browse the repository at this point in the history
y3lo committed Feb 29, 2024
1 parent f9140bf commit 8004851
Showing 13 changed files with 255 additions and 128 deletions.
4 changes: 3 additions & 1 deletion src/pages/ParkingMode/Markdown.tsx
Original file line number Diff line number Diff line change
@@ -5,12 +5,14 @@ import DOMPurify from 'dompurify';

const MarkdownContent = styled.div`
color: #d6d6d6;
font-weight: 300;
strong {
color: #fff;
font-weight: 600;
}
em {
font-style: normal;
color: #48e59b;
font-style: normal;
}
`;

30 changes: 16 additions & 14 deletions src/pages/ParkingMode/NameDisplay.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useCallback } from 'react';
import { NamefiBrandText } from '../../components/Core/NamefiBrandText';
import { cn } from '../../utils/cn';
import { useShortAddress } from './useShortAddress';
import { useShortAddress } from './hooks/useShortAddress';

export interface NameDisplayProps {
name: string;
@@ -27,28 +27,30 @@ export const NameDisplay = ({
return (
<div
className={cn(
'w-full max-w-[652px] h-[200px] bg-[#31313166] rounded-3xl flex flex-col justify-center items-center relative',
'bg-[#31313166] rounded-3xl flex flex-col justify-center items-center relative',
className,
)}>
<div className="flex flex-col justify-center items-center">
<div className="text-[64px] leading-tight text-[#fff]">{name}</div>
<div className="flex flex-col justify-center items-center xl:py-16 xl:px-24 md:py-9 md:px-16 sm:py-8 sm:px-12 py-12 px-10">
<div className="xl:text-6xl md:text-4xl text-3xl leading-tight text-[#fff]">
{name}
</div>
{punycode && <div className="text-sm text-black-400">{punycode}</div>}
</div>
<div className="absolute -left-8 -top-4">
<NamefiBrandText className="text-primary-500 text-3xl">
<div className="absolute xl:-left-8 xl:-top-4 md:-left-5 md:-top-2.5 sm:-left-4 sm:-top-2 -left-1.5 -top-3">
<NamefiBrandText className="text-primary-500 xl:text-3xl md:text-lg sm:text-sm text-xl">
{status === 'for-bid' ? 'For Bid' : status === 'for-sale' ? 'For Sale' : ''}
</NamefiBrandText>
</div>
<div
className="flex justify-end items-center mt-4 absolute right-6 bottom-4 cursor-pointer"
className="flex justify-end items-center mt-4 absolute xl:right-6 xl:bottom-4 md:right-t md:bottom-2 sm:right-3.5 sm:bottom-2 right-2.5 bottom-2.5 cursor-pointer origin-bottom-right xl:scale-100 scale-50"
onClick={handleClickOwner}>
<div className="text-[10px] text-[#acacac] mr-1.5">Owner by </div>
<div className="text-sm text-[#ededed] mr-3">{shortOwner}</div>
<img
className="text-sm w-5 text-[#ededed] mr-3"
src="/assets/Chat.svg"
alt="chat"
/>
<div className="text-[10px] text-[#acacac] mr-1.5">Owner by </div>
<div className="text-sm text-[#ededed] mr-3">{shortOwner}</div>
<img
className="text-sm w-5 text-[#ededed] mr-3 sm:inline-block hidden"
src="/assets/Chat.svg"
alt="chat"
/>
</div>
</div>
);
27 changes: 27 additions & 0 deletions src/pages/ParkingMode/Statistic/ScoreStatistic.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';
import { Statistic } from './Statistic';

export interface ScoreStatisticProps {
title: React.ReactNode;
score: number;
description?: React.ReactNode;
tip?: React.ReactNode;
className?: string;
}

export const ScoreStatistic = ({
title,
score,
description,
tip,
className,
}: ScoreStatisticProps) => {
return (
<Statistic title={title} tip={tip} description={description} className={className}>
<div className="xl:w-[280px] md:w-[160px] sm:w-[140px] w-[122px] flex justify-center items-end">
<span>{score}</span>
<span className="xl:text-xl md:text-sm text-[10px] text-[#d6d6d6] leading-6">/100</span>
</div>
</Statistic>
);
};
Original file line number Diff line number Diff line change
@@ -11,13 +11,13 @@ export interface StatisticProps {
export const Statistic = ({ title, tip, children, description, className }: StatisticProps) => {
return (
<div className={className}>
<div className="text-sm text-black-500 flex gap-2 mb-2">
<div className="lg:text-sm text-[8px] text-black-500 flex gap-[0.5em] lg:mb-2 mb-1">
{title}
{tip && <img className="w-[18px]" src="/assets/InfoCircled.svg" alt="Info" />}
{tip && <img className="w-[1em]" src="/assets/InfoCircled.svg" alt="Info" />}
</div>
<div className="text-5xl text-[#fff] font-primary mb-1">{children}</div>
<div className="lg:text-5xl md:text-3xl text-2xl text-[#fff] font-primary lg:mb-1 mb-0.5">{children}</div>
{description && (
<div className="text-sm text-black-500 font-primary font-light">{description}</div>
<div className="lg:text-sm text-[8px] text-black-500 font-primary font-light">{description}</div>
)}
</div>
);
31 changes: 31 additions & 0 deletions src/pages/ParkingMode/Statistic/ValueStatistic.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React from 'react';
import { Statistic } from './Statistic';
import { usePrettyPrice } from '../hooks/usePrettyPrice';

export interface ValueStatisticProps {
title: React.ReactNode;
value: number;
unit: string;
description?: React.ReactNode;
tip?: React.ReactNode;
className?: string;
}

export const ValueStatistic = ({
title,
value,
unit,
description,
tip,
className,
}: ValueStatisticProps) => {
const prettyValue = usePrettyPrice(value, 0);
return (
<Statistic title={title} tip={tip} description={description} className={className}>
<div className="flex items-end">
<span className="mr-[0.5em]">{prettyValue}</span>
<span className="xl:text-xl md:text-sm text-[10px] text-[#d6d6d6] leading-6">{unit}</span>
</div>
</Statistic>
);
};
4 changes: 4 additions & 0 deletions src/pages/ParkingMode/Statistic/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export * from './Statistic';
export * from './ValueStatistic';
export * from './ScoreStatistic';

File renamed without changes.
File renamed without changes.
34 changes: 14 additions & 20 deletions src/stories/Pages/ParkingMode/FullPage.stories.tsx
Original file line number Diff line number Diff line change
@@ -5,53 +5,47 @@ import { BaseLayoutHeader } from '../../../components/Layouts/BaseLayout';
import { UserAuthStateDemo } from '../../../components/Templates/UserAuthState/UserAuthStateDemo';
import { SolidButton } from '../../../components/Core/Buttons/SolidButton';
import { NameDisplay } from '../../../pages/ParkingMode/NameDisplay';
import { Statistic } from '../../../pages/ParkingMode/Statistic';
import { ValueStatistic, ScoreStatistic } from '../../../pages/ParkingMode/Statistic';
import { NamePotential } from '../../../pages/ParkingMode/NamePotential';
import { ParkingModeFooter } from '../../../pages/ParkingMode/ParkingModeFooter';
import { ScrollDownTip } from '../../../pages/ParkingMode/ScrollDownTip';
import { TldButtons } from '../../../components/TldButtons';

const ParkingMode = () => {
return (
<div className={'w-full bg-[#1a1a1a]'}>
<div className={'w-full bg-[#1A1A1A]'}>
<div className="max-w-[1488px] mx-auto min-h-screen mb-4 flex flex-col">
<div className="px-11">
<BaseLayoutHeader endSlot={<UserAuthStateDemo />} />
</div>
<div className="flex-1 flex justify-center items-center pt-14 pb-6">
<div className="flex-1 flex justify-center items-center xl:py-40 md:pt-20 md:pb-16 sm:pt-14 sm:pb-6 pt-24 pb-20">
<NameDisplay
name="example.com"
owner="0x872742426c502131B5C13015DEaE0B1BEC895315"
status="for-bid"
/>
</div>
<div className="flex mb-24 px-36 justify-center items-center flex-wrap">
<div className="flex gap-12 mr-12 justify-center items-center">
<Statistic
<div className="flex flex-wrap md:flex-row flex-col xl:mb-24 mb-8 xl:px-36 md:px-12 sm:px-24 px-2.5 justify-center items-center">
<div className="flex flex-wrap xl:gap-12 md:gap-7 sm:gap-5 gap-4 md:mr-12 mr-0 md:mb-0 sm:mb-5 mb-6 justify-center items-center">
<ValueStatistic
title="Estimated Value"
tip="some tips"
description="≈$20,000.00">
<div className="flex items-end gap-8">
<span>20,000</span>
<span className="text-xl text-[#d6d6d6]">$NFSC</span>
</div>
</Statistic>
<Statistic
value={20000}
unit="$NFSC"
description="≈$20,000.00" />
<ScoreStatistic
title="Name Score"
tip="some tips"
description={<div className="flex justify-end">by XXXXXX</div>}>
<div className="w-[280px] flex justify-center items-end">
<span>87</span>
<span className="text-xl text-[#d6d6d6]">/100</span>
</div>
</Statistic>
score={87}
description={<div className="flex justify-end">by XXXXXX</div>} />
</div>
<div className="flex-1 pt-10 flex justify-center">
<div className="flex-1 flex flex-col justify-center items-center">
<div>
<SolidButton className="font-primary text-sm whitespace-nowrap">
Make an Offer <img src="/assets/arrow-right2.svg" />
</SolidButton>
</div>
<p className="mt-1.5 block sm:hidden text-brand-300 text-center text-[8px]">Trading on mobile will be supported soon!</p>
</div>
</div>
<div className="flex flex-wrap justify-between items-center gap-6 px-36 mb-32">
89 changes: 0 additions & 89 deletions src/stories/Pages/ParkingMode/Statistic.stories.tsx

This file was deleted.

57 changes: 57 additions & 0 deletions src/stories/Pages/ParkingMode/Statistic/ScoreStatistic.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import type { Meta, StoryObj } from '@storybook/react';
import '../../../../index.css';
import '../../../../App.css';
import { ScoreStatistic } from '../../../../pages/ParkingMode/Statistic/ScoreStatistic';

const meta = {
title: 'Pages/ParkingMode/Statistic/Variants/ScoreStatistic',
component: ScoreStatistic,
parameters: {
layout: 'centered',
},
} satisfies Meta<typeof ScoreStatistic>;

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {
argTypes: {
title: { control: 'text' },
tip: { control: 'text' },
score: { control: 'number' },
description: { control: 'text' },
className: { control: 'text' },
},
args: {
title: 'Value',
tip: 'Tips!',
score: 100,
description: 'Perfect',
className: '',
},
tags: ['autodocs'],
};

export const NameScore: Story = {
argTypes: {
score: { control: 'number' },
provider: { control: 'string' },
tip: { control: 'text' },
} as any,
args: {
score: 87,
provider: 'XXXXXX',
tip: 'Tips!',
} as any,
tags: ['autodocs'],
render: ({ score, provider, tip }: any) => {
return (
<ScoreStatistic
title="Name Score"
tip={tip}
score={score}
description={<div className="flex justify-end">by {provider}</div>}
/>
);
},
};
Loading

0 comments on commit 8004851

Please sign in to comment.