Skip to content

Commit de7bac0

Browse files
committed
fix(excelfile): changes to fix import
#6
1 parent 3cae870 commit de7bac0

9 files changed

Lines changed: 73 additions & 53 deletions

File tree

dist/ExcelPlugin/components/ExcelFile.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ var ExcelFile = /*#__PURE__*/function (_react_1$default$Comp) {
3333
_this = _super.call.apply(_super, [this].concat(args));
3434
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
3535
fileName: "Download",
36-
fileExtension: "xlsx"
36+
fileExtension: "xlsx",
37+
hideElement: false
3738
});
3839
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createSheetData", function (sheet) {
3940
var columns = sheet.props.children;
@@ -126,14 +127,17 @@ var ExcelFile = /*#__PURE__*/function (_react_1$default$Comp) {
126127
fileExtension: this.props.fileExtension
127128
});
128129
}
130+
if (this.props.hideElement) {
131+
this.setState({
132+
hideElement: this.props.hideElement
133+
});
134+
}
129135
}
130136
}, {
131137
key: "render",
132138
value: function render() {
133-
var _this$props = this.props,
134-
hideElement = _this$props.hideElement,
135-
element = _this$props.element;
136-
if (hideElement) {
139+
var element = this.props.element;
140+
if (this.state.hideElement === true) {
137141
return null;
138142
} else {
139143
return react_1.default.createElement("span", {
@@ -144,6 +148,4 @@ var ExcelFile = /*#__PURE__*/function (_react_1$default$Comp) {
144148
}]);
145149
return ExcelFile;
146150
}(react_1.default.Component);
147-
(0, _defineProperty2.default)(ExcelFile, "ExcelColumn", void 0);
148-
(0, _defineProperty2.default)(ExcelFile, "ExcelSheet", void 0);
149151
exports.default = ExcelFile;

dist/ExcelPlugin/elements/ExcelSheet.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ var ExcelSheet = /*#__PURE__*/function (_react_1$Component) {
2222
(0, _inherits2.default)(ExcelSheet, _react_1$Component);
2323
var _super = _createSuper(ExcelSheet);
2424
function ExcelSheet(props) {
25+
var _props$children;
2526
var _this;
2627
(0, _classCallCheck2.default)(this, ExcelSheet);
2728
_this = _super.call(this, props);
28-
if (!props.children.every(function (child) {
29+
if (!((_props$children = props.children) !== null && _props$children !== void 0 && _props$children.every(function (child) {
2930
return child.type === ExcelColumn_1.default;
30-
})) {
31+
}))) {
3132
throw new Error("<ExcelSheet> can only have <ExcelColumn> as children");
3233
}
3334
return _this;

dist/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
88
Object.defineProperty(exports, "__esModule", {
99
value: true
1010
});
11-
exports.ExcelColumn = exports.ExcelSheet = void 0;
11+
exports.ExcelColumn = exports.ExcelSheet = exports.ExcelFile = void 0;
1212
var ExcelFile_1 = __importDefault(require("./ExcelPlugin/components/ExcelFile"));
13+
exports.ExcelFile = ExcelFile_1.default;
1314
var ExcelSheet_1 = __importDefault(require("./ExcelPlugin/elements/ExcelSheet"));
1415
exports.ExcelSheet = ExcelSheet_1.default;
1516
var ExcelColumn_1 = __importDefault(require("./ExcelPlugin/elements/ExcelColumn"));
1617
exports.ExcelColumn = ExcelColumn_1.default;
17-
ExcelFile_1.default.ExcelSheet = ExcelSheet_1.default;
18-
ExcelFile_1.default.ExcelColumn = ExcelColumn_1.default;
19-
exports.default = ExcelFile_1.default;
18+
var ReactExport = {
19+
ExcelFile: ExcelFile_1.default
20+
};
21+
exports.default = ReactExport;

src-js/ExcelPlugin/components/ExcelFile.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ class ExcelFile extends react_1.default.Component {
1010
state = {
1111
fileName: "Download",
1212
fileExtension: "xlsx",
13+
hideElement: false,
1314
};
14-
static ExcelColumn;
15-
static ExcelSheet;
1615
componentDidMount() {
1716
if (this.props.filename) {
1817
this.setState({
@@ -24,6 +23,11 @@ class ExcelFile extends react_1.default.Component {
2423
fileExtension: this.props.fileExtension,
2524
});
2625
}
26+
if (this.props.hideElement) {
27+
this.setState({
28+
hideElement: this.props.hideElement,
29+
});
30+
}
2731
}
2832
createSheetData = (sheet) => {
2933
const columns = sheet.props.children;
@@ -102,8 +106,8 @@ class ExcelFile extends react_1.default.Component {
102106
this.download();
103107
};
104108
render() {
105-
const { hideElement, element } = this.props;
106-
if (hideElement) {
109+
const { element } = this.props;
110+
if (this.state.hideElement === true) {
107111
return null;
108112
}
109113
else {

src-js/ExcelPlugin/elements/ExcelSheet.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const ExcelColumn_1 = __importDefault(require("./ExcelColumn"));
88
class ExcelSheet extends react_1.Component {
99
constructor(props) {
1010
super(props);
11-
if (!props.children.every((child) => child.type === ExcelColumn_1.default)) {
11+
if (!props.children?.every((child) => child.type === ExcelColumn_1.default)) {
1212
throw new Error("<ExcelSheet> can only have <ExcelColumn> as children");
1313
}
1414
}

src-js/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
return (mod && mod.__esModule) ? mod : { "default": mod };
44
};
55
Object.defineProperty(exports, "__esModule", { value: true });
6-
exports.ExcelColumn = exports.ExcelSheet = void 0;
6+
exports.ExcelColumn = exports.ExcelSheet = exports.ExcelFile = void 0;
77
const ExcelFile_1 = __importDefault(require("./ExcelPlugin/components/ExcelFile"));
8+
exports.ExcelFile = ExcelFile_1.default;
89
const ExcelSheet_1 = __importDefault(require("./ExcelPlugin/elements/ExcelSheet"));
910
exports.ExcelSheet = ExcelSheet_1.default;
1011
const ExcelColumn_1 = __importDefault(require("./ExcelPlugin/elements/ExcelColumn"));
1112
exports.ExcelColumn = ExcelColumn_1.default;
12-
ExcelFile_1.default.ExcelSheet = ExcelSheet_1.default;
13-
ExcelFile_1.default.ExcelColumn = ExcelColumn_1.default;
14-
exports.default = ExcelFile_1.default;
13+
const ReactExport = {
14+
ExcelFile: ExcelFile_1.default
15+
};
16+
exports.default = ReactExport;

src/ExcelPlugin/components/ExcelFile.tsx

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,17 @@ import type { BookType, WorkSheet } from "xlsx-js-style";
44
import { excelSheetFromAoA, excelSheetFromDataSet } from "../utils/DataUtil";
55
import type {
66
ExcelColumnProps,
7+
ExcelFileProps,
78
ExcelSheetProps,
89
ExcelValue,
910
} from "react-xlsx-wrapper";
1011

11-
interface ExcelFileProps {
12-
hideElement?: boolean;
13-
filename?: string;
14-
fileExtension?: BookType;
15-
element?: React.ReactNode;
16-
children: React.ReactElement<ExcelSheetProps>[];
17-
}
18-
1912
class ExcelFile extends React.Component<ExcelFileProps> {
2013
state = {
2114
fileName: "Download",
2215
fileExtension: "xlsx" as BookType,
16+
hideElement: false,
2317
};
24-
static ExcelColumn: typeof import("/Users/susanta96/Develop/OwnProject/AS-Devs/react-xlsx-wrapper/src/ExcelPlugin/elements/ExcelColumn").default;
25-
static ExcelSheet: typeof import("/Users/susanta96/Develop/OwnProject/AS-Devs/react-xlsx-wrapper/src/ExcelPlugin/elements/ExcelSheet").default;
2618

2719
componentDidMount() {
2820
if (this.props.filename) {
@@ -35,9 +27,15 @@ class ExcelFile extends React.Component<ExcelFileProps> {
3527
fileExtension: this.props.fileExtension,
3628
});
3729
}
30+
31+
if (this.props.hideElement) {
32+
this.setState({
33+
hideElement: this.props.hideElement,
34+
});
35+
}
3836
}
3937

40-
createSheetData = (sheet: React.ReactElement<ExcelSheetProps>) => {
38+
createSheetData = (sheet: React.ReactElement<any>) => {
4139
const columns = sheet.props.children;
4240
const sheetData = [
4341
React.Children.map(
@@ -71,20 +69,23 @@ class ExcelFile extends React.Component<ExcelFileProps> {
7169
const fileName = this.getFileName();
7270
const fileExtension: BookType = this.getFileExtension();
7371

74-
React.Children.forEach(this.props.children, (sheet) => {
75-
let ws: WorkSheet = {};
76-
const wsName = sheet.props.name || fileName.split(".")[0] || "Sheet1";
77-
if (
78-
typeof sheet.props.dataSet === "undefined" ||
79-
sheet.props.dataSet.length === 0
80-
) {
81-
ws = excelSheetFromAoA(this.createSheetData(sheet));
82-
} else {
83-
ws = excelSheetFromDataSet(sheet.props.dataSet);
72+
React.Children.forEach<React.ReactElement<ExcelSheetProps>>(
73+
this.props.children,
74+
(sheet) => {
75+
let ws: WorkSheet = {};
76+
const wsName = sheet.props.name || fileName.split(".")[0] || "Sheet1";
77+
if (
78+
typeof sheet.props.dataSet === "undefined" ||
79+
sheet.props.dataSet.length === 0
80+
) {
81+
ws = excelSheetFromAoA(this.createSheetData(sheet));
82+
} else {
83+
ws = excelSheetFromDataSet(sheet.props.dataSet);
84+
}
85+
// add worksheet to workbook
86+
utils.book_append_sheet(wb, ws, wsName);
8487
}
85-
// add worksheet to workbook
86-
utils.book_append_sheet(wb, ws, wsName);
87-
});
88+
);
8889

8990
writeFile(wb, fileName, {
9091
bookType: fileExtension,
@@ -141,9 +142,9 @@ class ExcelFile extends React.Component<ExcelFileProps> {
141142
};
142143

143144
render() {
144-
const { hideElement, element } = this.props;
145+
const { element } = this.props;
145146

146-
if (hideElement) {
147+
if (this.state.hideElement === true) {
147148
return null;
148149
} else {
149150
return <span onClick={this.handleDownload}>{element}</span>;

src/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ import ExcelFile from "./ExcelPlugin/components/ExcelFile";
22
import ExcelSheet from "./ExcelPlugin/elements/ExcelSheet";
33
import ExcelColumn from "./ExcelPlugin/elements/ExcelColumn";
44

5-
ExcelFile.ExcelSheet = ExcelSheet;
6-
ExcelFile.ExcelColumn = ExcelColumn;
5+
const ReactExport = {
6+
ExcelFile
7+
};
78

8-
export default ExcelFile;
9+
export default ReactExport;
910

1011
export {
12+
ExcelFile,
1113
ExcelSheet,
1214
ExcelColumn
1315
};

types/index.d.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ declare module 'react-xlsx-wrapper' {
22
import * as React from 'react';
33

44
export interface ExcelFileProps {
5+
hideElement?: boolean; //Hide download element
56
filename?: string;
67
fileExtension?: string;
78
element?: React.ReactElement; //Download Element
8-
children?: Array<React.ReactElement> | React.ReactElement; // Array<ExcelSheetProps>;
9+
children: Array<React.ReactElement<ExcelSheetProps>> | React.ReactElement<ExcelSheetProps>;
910
}
1011

1112
export interface ExcelSheetProps {
@@ -141,6 +142,11 @@ declare module 'react-xlsx-wrapper' {
141142

142143
export class ExcelFile extends React.Component<ExcelFileProps, any> {
143144
}
144-
145+
146+
export namespace ReactExport {
147+
export class ExcelFile extends React.Component<ExcelFileProps, any> {
148+
}
149+
}
150+
export default ReactExport
145151

146152
}

0 commit comments

Comments
 (0)