aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sokolov <eug-vs@keemail.me>2020-02-03 13:30:27 +0000
committerGitHub <noreply@github.com>2020-02-03 13:30:27 +0000
commit989173ea6e39ac27893f3cc5efba043ebda9df67 (patch)
tree4281d872404091155d1ddeaa5727bc5fb51fdd8a
parent53143dfc36e66e285256706a8ec837e2bd2f8427 (diff)
parent5bcc9b41e59bf7215abf395ea899cdbc2d06db9a (diff)
downloadreact-benzin-989173ea6e39ac27893f3cc5efba043ebda9df67.tar.gz
Merge pull request #2 from eug-vs/typescript
Add Typescript support
-rw-r--r--.babelrc5
-rw-r--r--package-lock.json37
-rw-r--r--package.json12
-rw-r--r--src/lib/components/Window/Window.tsx (renamed from src/lib/components/Window/Window.js)18
-rw-r--r--src/lib/components/Window/WindowSurface.tsx (renamed from src/lib/components/Window/WindowSurface/WindowSurface.js)12
-rw-r--r--src/lib/components/Window/types.ts11
-rw-r--r--src/react-app-env.d.ts1
-rw-r--r--ts-compile-config.json28
-rw-r--r--tsconfig.json25
9 files changed, 121 insertions, 28 deletions
diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index 5fd231d..0000000
--- a/.babelrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "presets": [
- ["react-app", { "absoluteRuntime": false }]
- ]
-}
diff --git a/package-lock.json b/package-lock.json
index 51f722e..5bac2cc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "react-benzin",
- "version": "1.0.0",
+ "version": "1.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -989,12 +989,13 @@
}
},
"@babel/preset-typescript": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.7.4.tgz",
- "integrity": "sha512-rqrjxfdiHPsnuPur0jKrIIGQCIgoTWMTjlbWE69G4QJ6TIOVnnRnIJhUxNTL/VwDmEAVX08Tq3B1nirer5341w==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz",
+ "integrity": "sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA==",
+ "dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.7.4"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-transform-typescript": "^7.8.3"
}
},
"@babel/runtime": {
@@ -1617,6 +1618,15 @@
"csstype": "^2.2.0"
}
},
+ "@types/react-dom": {
+ "version": "16.9.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz",
+ "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==",
+ "dev": true,
+ "requires": {
+ "@types/react": "*"
+ }
+ },
"@types/react-transition-group": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.3.tgz",
@@ -2586,6 +2596,15 @@
"@babel/plugin-transform-react-jsx-source": "^7.7.4"
}
},
+ "@babel/preset-typescript": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.7.4.tgz",
+ "integrity": "sha512-rqrjxfdiHPsnuPur0jKrIIGQCIgoTWMTjlbWE69G4QJ6TIOVnnRnIJhUxNTL/VwDmEAVX08Tq3B1nirer5341w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.7.4"
+ }
+ },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -8467,9 +8486,9 @@
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
},
"levenary": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.0.tgz",
- "integrity": "sha512-VHcwhO0UTpUW7rLPN2/OiWJdgA1e9BqEDALhrgCe/F+uUJnep6CoUsTzMeP8Rh0NGr9uKquXxqe7lwLZo509nQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
+ "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
"requires": {
"leven": "^3.1.0"
}
diff --git a/package.json b/package.json
index 6fb756f..e663a8b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-benzin",
- "version": "1.0.1",
+ "version": "2.0.0",
"description": "A powerful React Material components library.",
"main": "dist/index.js",
"module": "dist/index.js",
@@ -11,8 +11,8 @@
"scripts": {
"start": "react-scripts start",
"test": "eslint .",
- "build": "rm -rf dist && NODE_ENV=production babel src/lib --out-dir dist --copy-files",
- "deploy": "npm test && npm run build && npm publish --public"
+ "build": "rm -rf dist && tsc --project ts-compile-config.json",
+ "deploy": "eslint src/lib && npm run build && npm publish --public"
},
"license": "MIT",
"dependencies": {
@@ -26,9 +26,9 @@
"typeface-roboto": "0.0.75"
},
"devDependencies": {
- "@babel/cli": "^7.8.3",
- "@babel/core": "^7.8.3",
- "@babel/preset-react": "^7.8.3",
+ "@types/node": "^13.5.0",
+ "@types/react": "^16.9.19",
+ "@types/react-dom": "^16.9.5",
"eslint": "^6.8.0",
"eslint-config-react-app": "^5.1.0",
"typescript": "^3.7.5"
diff --git a/src/lib/components/Window/Window.js b/src/lib/components/Window/Window.tsx
index 027213f..ea8e264 100644
--- a/src/lib/components/Window/Window.js
+++ b/src/lib/components/Window/Window.tsx
@@ -2,10 +2,17 @@ import React from 'react';
import { Typography, Divider, makeStyles } from '@material-ui/core';
-import WindowSurface from './WindowSurface/WindowSurface';
+import WindowSurface from './WindowSurface';
+import { SurfaceSize, SurfacePosition } from './types';
-const useStyles = makeStyles(theme => ({
+interface PropTypes {
+ type: 'primary' | 'secondary' | 'mono';
+ name?: string;
+}
+
+
+const useStyles = makeStyles((theme: any) => ({
header: {
padding: theme.spacing(1, 0, 1, 2),
background: theme.palette.background.elevation2,
@@ -13,14 +20,14 @@ const useStyles = makeStyles(theme => ({
}));
-const Window = ({ type, name, children }) => {
+const Window: React.FC<PropTypes> = ({ type, name, children }) => {
const classes = useStyles();
- const size = {
+ const size: SurfaceSize = {
height: '85vh',
};
- const position = {
+ const position: SurfacePosition = {
bottom: '3vh',
};
@@ -51,5 +58,4 @@ const Window = ({ type, name, children }) => {
);
};
-
export default Window;
diff --git a/src/lib/components/Window/WindowSurface/WindowSurface.js b/src/lib/components/Window/WindowSurface.tsx
index 7859bf6..701a767 100644
--- a/src/lib/components/Window/WindowSurface/WindowSurface.js
+++ b/src/lib/components/Window/WindowSurface.tsx
@@ -2,8 +2,16 @@ import React from 'react';
import { Paper, makeStyles } from '@material-ui/core';
+import { SurfaceSize, SurfacePosition } from './types';
-const useStyles = makeStyles(theme => ({
+
+interface PropTypes {
+ size: SurfaceSize;
+ position: SurfacePosition;
+}
+
+
+const useStyles = makeStyles((theme: any) => ({
surface: {
position: 'absolute',
display: 'flex',
@@ -18,7 +26,7 @@ const useStyles = makeStyles(theme => ({
}));
-const WindowSurface = ({ size, position, children }) => {
+const WindowSurface: React.FC<PropTypes> = ({ size, position, children }) => {
const classes = useStyles();
return (
diff --git a/src/lib/components/Window/types.ts b/src/lib/components/Window/types.ts
new file mode 100644
index 0000000..9e18fe3
--- /dev/null
+++ b/src/lib/components/Window/types.ts
@@ -0,0 +1,11 @@
+export interface SurfaceSize {
+ height: string;
+ width?: string;
+}
+
+export interface SurfacePosition {
+ bottom: string;
+ left?: string;
+ right?: string;
+}
+
diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts
new file mode 100644
index 0000000..6431bc5
--- /dev/null
+++ b/src/react-app-env.d.ts
@@ -0,0 +1 @@
+/// <reference types="react-scripts" />
diff --git a/ts-compile-config.json b/ts-compile-config.json
new file mode 100644
index 0000000..8f0256b
--- /dev/null
+++ b/ts-compile-config.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "outDir": "dist",
+ "target": "es5",
+ "lib": [
+ "es6",
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "react",
+ "skipLibCheck": true,
+ "declaration": true,
+ "listEmittedFiles": true
+ },
+ "include": [
+ "src/lib"
+ ]
+}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..f2850b7
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react"
+ },
+ "include": [
+ "src"
+ ]
+}