Skip to content
This repository was archived by the owner on Apr 11, 2025. It is now read-only.

Commit fa12d88

Browse files
committed
🎉 chore: 初始化 Preloader 组件
1 parent a09f7a8 commit fa12d88

File tree

15 files changed

+206
-0
lines changed

15 files changed

+206
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import React from 'react';
2+
3+
import { Square } from '@arvinxu/preloader';
4+
5+
const Loading = () => {
6+
return <Square />;
7+
};
8+
9+
export default Loading;

docs/components/common/preloader.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Preloader
3+
order: 2
4+
---
5+
6+
# Preloader
7+
8+
## 图形一览
9+
10+
### Square
11+
12+
<code src="./examples/Preloader/Square" />

jest.config.base.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module.exports = {
1111
setupFiles: [...defaultConfig.setupFiles],
1212
moduleNameMapper: {
1313
'@arvinxu/image-gallery': '<rootDir>/packages/image-gallery/src',
14+
'@arvinxu/preloader': '<rootDir>/packages/preloader/src',
1415
'@arvinxu/float-label-input': '<rootDir>/packages/float-label-input/src',
1516
'@arvinxu/page-loading': '<rootDir>/packages/page-loading/src',
1617
'@arvinxu/mindflow': '<rootDir>/packages/mindflow/src',

packages/preloader/.fatherrc.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const base = require('../../.fatherrc');
2+
3+
module.exports = {
4+
...base,
5+
};

packages/preloader/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# @arvinxu/preloader
2+
3+
[![NPM version][version-image]][version-url] [![NPM downloads][download-image]][download-url]
4+
5+
## License
6+
7+
[MIT](../../LICENSE) ® Arvin Xu
8+
9+
<!-- npm url -->
10+
11+
[version-image]: http://img.shields.io/npm/v/@arvinxu/preloader.svg?color=deepgreen&label=latest
12+
[version-url]: http://npmjs.org/package/@arvinxu/preloader
13+
[download-image]: https://img.shields.io/npm/dm/@arvinxu/preloader.svg
14+
[download-url]: https://npmjs.org/package/@arvinxu/preloader

packages/preloader/jest.config.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const base = require('../../jest.config.base');
2+
3+
const packageName = '@arvinxu/preloader';
4+
5+
const root = '<rootDir>/packages/preloader';
6+
7+
module.exports = {
8+
...base,
9+
rootDir: '../..',
10+
roots: [root],
11+
name: packageName,
12+
displayName: packageName,
13+
collectCoverageFrom: [`${root}/src/**/*.tsx`, `${root}/src/**/*.ts`],
14+
};

packages/preloader/package.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "@arvinxu/preloader",
3+
"version": "1.0.0",
4+
"files": [
5+
"lib",
6+
"es"
7+
],
8+
"main": "lib/index.js",
9+
"module": "es/index.js",
10+
"homepage": "https://github.com/arvinxx/components/tree/master/packages/preloader#readme",
11+
"repository": "git+https://github.com/arvinxx/components.git",
12+
"publishConfig": {
13+
"registry": "https://registry.npmjs.org",
14+
"access": "public"
15+
},
16+
"scripts": {
17+
"build": "father-build && yarn webpack",
18+
"webpack": "webpack",
19+
"test": "jest",
20+
"test:update": "jest -u",
21+
"prepublishOnly": "yarn build",
22+
"cov": "jest --coverage",
23+
"clean": "rm -rf es lib dist build coverage .umi"
24+
}
25+
}

packages/preloader/src/Square.less

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
@keyframes pulse {
2+
0% {
3+
opacity: 1;
4+
}
5+
100% {
6+
opacity: 0;
7+
}
8+
}
9+
10+
.avx-preloader-square {
11+
&-container {
12+
display: flex;
13+
flex-direction: row;
14+
flex-wrap: wrap;
15+
align-items: center;
16+
justify-content: space-around;
17+
width: 36px;
18+
height: 36px;
19+
}
20+
21+
&-item {
22+
width: 35%;
23+
height: 35%;
24+
animation: pulse 0.75s ease-in infinite alternate;
25+
}
26+
27+
&-animation-delay {
28+
-webkit-animation-delay: 0.75s;
29+
animation-delay: 0.75s;
30+
}
31+
}

packages/preloader/src/Square.tsx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import type { CSSProperties, FC } from 'react';
2+
import React from 'react';
3+
4+
import './Square.less';
5+
6+
export interface SquareProps {
7+
/**
8+
* 主色(可选)
9+
* @default #1890ff
10+
*/
11+
color?: string;
12+
}
13+
14+
const Square: FC<SquareProps> = ({ color = '#1890ff' }) => {
15+
const colorStyle: CSSProperties = { background: color };
16+
17+
return (
18+
<div className="avx-preloader-square-container">
19+
<div className="avx-preloader-square-item" style={colorStyle} />
20+
<div
21+
className="avx-preloader-square-item avx-preloader-square-animation-delay"
22+
style={colorStyle}
23+
/>
24+
<div
25+
className="avx-preloader-square-item avx-preloader-square-animation-delay"
26+
style={colorStyle}
27+
/>
28+
<div className="avx-preloader-square-item" style={colorStyle} />
29+
</div>
30+
);
31+
};
32+
33+
export default Square;

packages/preloader/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default as Square } from './Square';

0 commit comments

Comments
 (0)