Formatting & identification of a table regeneration bug
This commit is contained in:
parent
5ca47989d1
commit
b413193cb7
|
@ -16,18 +16,23 @@ export default class Body extends React.Component {
|
||||||
|
|
||||||
/** @listens Table#newTable loads new Table*/
|
/** @listens Table#newTable loads new Table*/
|
||||||
handleEvents() {
|
handleEvents() {
|
||||||
|
const self = this;
|
||||||
Emitter.on("newTable", (obj, err) => {
|
Emitter.on("newTable", (obj, err) => {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
this.setState({ table: obj });
|
|
||||||
|
console.log("newTable", obj);
|
||||||
|
debugger;
|
||||||
|
self.setState({ table: obj });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
this.initialize();
|
this.initialize();
|
||||||
}
|
}
|
||||||
shouldComponentUpdate(nextProps, nextState) {
|
shouldComponentUpdate(nextProps, state) {
|
||||||
return this.state.table !== nextState.table;
|
return this.state.table.id !== state.table.id;
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
|
console.warn("Render:", this.state.table);
|
||||||
return (
|
return (
|
||||||
<div className="wrapper">
|
<div className="wrapper">
|
||||||
<div id="searchBar">
|
<div id="searchBar">
|
||||||
|
@ -64,6 +69,7 @@ export default class Body extends React.Component {
|
||||||
if (!Settings.has("tableJSON")) {
|
if (!Settings.has("tableJSON")) {
|
||||||
let tableJSON = await generate("C:\\Users\\Paoda\\Downloads", template);
|
let tableJSON = await generate("C:\\Users\\Paoda\\Downloads", template);
|
||||||
|
|
||||||
|
console.log("Initialize: ", tableJSON)
|
||||||
this.setState({ table: tableJSON });
|
this.setState({ table: tableJSON });
|
||||||
saveTable(tableJSON);
|
saveTable(tableJSON);
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@ import Settings from 'electron-settings';
|
||||||
var active = document.createElement("tr");
|
var active = document.createElement("tr");
|
||||||
active.classList.toggle("active");
|
active.classList.toggle("active");
|
||||||
|
|
||||||
|
const usedTableIDs = [];
|
||||||
|
|
||||||
const mp = new MusicPlayer();
|
const mp = new MusicPlayer();
|
||||||
var JSXcache;
|
var JSXcache;
|
||||||
|
|
||||||
|
@ -228,15 +230,36 @@ export async function generate(path, template) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const t2 = performance.now();
|
const t2 = performance.now();
|
||||||
console.log(
|
console.log(
|
||||||
"Time Taken (Table Data Creation): " +
|
"Time Taken (Table Data Creation): " +
|
||||||
Math.floor(t2 - t1) / 1000 +
|
Math.floor(t2 - t1) / 1000 +
|
||||||
"s"
|
"s"
|
||||||
);
|
);
|
||||||
|
|
||||||
return new Promise((res, rej) => {
|
// assign unique ID to Table.
|
||||||
res(table);
|
|
||||||
});
|
table.id = createID(25);
|
||||||
|
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
res(table);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function createID(length) {
|
||||||
|
const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||||
|
let id;
|
||||||
|
|
||||||
|
do {
|
||||||
|
id = "";
|
||||||
|
for (let i = 0; i < length; i++) id += chars[randInt(0, chars.length)];
|
||||||
|
} while(usedTableIDs.includes(id));
|
||||||
|
|
||||||
|
usedTableIDs.push(id);
|
||||||
|
return id;
|
||||||
|
|
||||||
|
function randInt(min, max) {
|
||||||
|
return ~~(Math.random() * (max - min) + min);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ export default class SettingsManager extends Modal {
|
||||||
<h3>Settings</h3>
|
<h3>Settings</h3>
|
||||||
<label htmlFor="table-data">
|
<label htmlFor="table-data">
|
||||||
Delete Table Data: <input onClick={this.deleteTable.bind(this)} type="button" value="Delete" name="delete-table" id="delete-table-btn" />
|
Delete Table Data: <input onClick={this.deleteTable.bind(this)} type="button" value="Delete" name="delete-table" id="delete-table-btn" />
|
||||||
|
<br />
|
||||||
Regnerate Table Data: <input onClick={this.regenTable.bind(this)} type="button" value="Regenerate" name="regen-table" id="regen-table-btn" />
|
Regnerate Table Data: <input onClick={this.regenTable.bind(this)} type="button" value="Regenerate" name="regen-table" id="regen-table-btn" />
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
|
@ -39,22 +40,25 @@ export default class SettingsManager extends Modal {
|
||||||
|
|
||||||
deleteTable() {
|
deleteTable() {
|
||||||
if (Settings.has("tableJSON")) Settings.delete("tableJSON");
|
if (Settings.has("tableJSON")) Settings.delete("tableJSON");
|
||||||
else console.warn("There was no Table Saved to Delete!");
|
else console.info("There was no Table Saved to Delete!");
|
||||||
|
|
||||||
Emitter.emit("newTable", this.template)
|
const template = this.template;
|
||||||
|
|
||||||
|
template.id = "-1"; //Impossible ID.
|
||||||
|
|
||||||
|
Emitter.emit("newTable", this.template);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Regenerates a Table
|
* Regenerates a Table
|
||||||
* TODO: Make this a function w/ the one inside of Body.js
|
* TODO: Make this a function w/ the one inside of Body.js
|
||||||
*/
|
*/
|
||||||
async regenTable() {
|
async regenTable() {
|
||||||
if (Settings.has("tableJSON")) Settings.delete("tableJSON");
|
if (Settings.has("tableJSON")) Settings.delete("tableJSON");
|
||||||
else console.warn("there was no Table Saved to Delete!")
|
else console.info("There was no Table Saved to Delete!")
|
||||||
|
|
||||||
let tableJSON = await generate("C:\\Users\\Paoda\\Downloads", this.template);
|
const tableJSON = await generate("C:\\Users\\Paoda\\Downloads", this.template);
|
||||||
|
|
||||||
Emitter.emit("newTable", tableJSON);
|
Emitter.emit("newTable", tableJSON);
|
||||||
|
|
||||||
|
|
Reference in New Issue