Skip to content

Commit 0b884d1

Browse files
authored
Merge pull request #4 from machielsdev/feature/page
Added page (and base) style and root imports
2 parents c88e695 + 705d06b commit 0b884d1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+3492
-2
lines changed

babel.config.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module.exports = {
22
plugins: [
3-
'@babel/plugin-proposal-class-properties'
3+
'@babel/plugin-proposal-class-properties',
4+
['babel-plugin-root-import', {
5+
"rootPathSuffix": "src/",
6+
"rootPathPrefix": "@/"
7+
}]
48
],
59
presets: [
610
'@babel/typescript',

package-lock.json

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
"@types/enzyme-adapter-react-16": "^1.0.6",
2121
"@types/jest": "^26.0.10",
2222
"@types/react": "^16.9.46",
23+
"@types/react-dom": "^16.9.8",
2324
"@types/react-is": "^16.7.1",
2425
"@typescript-eslint/eslint-plugin": "^4.5.0",
2526
"@typescript-eslint/parser": "^4.5.0",
27+
"babel-plugin-root-import": "^6.6.0",
2628
"dart-sass": "^1.25.0",
2729
"enzyme": "^3.11.0",
2830
"enzyme-adapter-react-16": "^1.15.3",

src/components/Page/Content.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import * as React from 'react';
2+
import clsx from 'clsx';
3+
4+
type PageContentProps = React.HTMLAttributes<HTMLDivElement>;
5+
6+
const PageContent = ({
7+
children,
8+
className
9+
}: React.PropsWithChildren<PageContentProps>): React.ReactElement => (
10+
<div
11+
className={clsx(
12+
'page-content',
13+
className
14+
)}
15+
>
16+
{children}
17+
</div>
18+
);
19+
20+
export default PageContent;

src/components/Page/Header.tsx

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import * as React from 'react';
2+
import Panel from '@/components/Panel';
3+
import clsx from 'clsx';
4+
5+
export interface PageHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
6+
title?: string;
7+
}
8+
9+
const PageHeader = ({
10+
children,
11+
className,
12+
title
13+
}: React.PropsWithChildren<PageHeaderProps>): React.ReactElement => (
14+
<Panel
15+
className={clsx(
16+
'page-header',
17+
title && 'with-title',
18+
className
19+
)}
20+
>
21+
{title && (
22+
<div
23+
className={clsx(
24+
'page-header-title'
25+
)}
26+
>
27+
<h1>{title}</h1>
28+
</div>
29+
)}
30+
{children}
31+
</Panel>
32+
);
33+
34+
export default PageHeader;

src/components/Page/index.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import * as React from 'react';
2+
import clsx from 'clsx';
3+
import PageHeader from '@/components/Page/Header';
4+
import PageContent from '@/components/Page/Content';
5+
6+
export type PageProps = React.HTMLAttributes<HTMLDivElement> ;
7+
8+
const Page = ({
9+
children,
10+
className,
11+
}: React.PropsWithChildren<PageProps>): React.ReactElement => (
12+
<div
13+
className={clsx(
14+
'page',
15+
className
16+
)}
17+
>
18+
{children}
19+
</div>
20+
);
21+
22+
Page.Header = PageHeader;
23+
Page.Content = PageContent;
24+
25+
export default Page;

src/components/Panel/index.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import * as React from 'react';
2+
import clsx from 'clsx';
3+
4+
interface PanelProps extends React.HTMLAttributes<HTMLDivElement> {
5+
spaced?: boolean;
6+
}
7+
8+
const Panel = ({
9+
children,
10+
className,
11+
spaced
12+
}: React.PropsWithChildren<PanelProps>): React.ReactElement => (
13+
<div
14+
className={clsx(
15+
'panel',
16+
spaced && 'panel-spaced',
17+
className
18+
)}
19+
>
20+
{children}
21+
</div>
22+
);
23+
24+
export default Panel;

src/components/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
export * from './utils';
2+
export { default as Page } from './Page';
3+
export { default as Panel } from './Panel';

src/fonts/inter/inter-v2-latin-100.eot

Whitespace-only changes.

0 commit comments

Comments
 (0)