Conversation
app.ts
Outdated
| @@ -0,0 +1,366 @@ | |||
|
|
|||
| let state = { | |||
There was a problem hiding this comment.
No point in defining the state object, rather define the attributes as they are.
app.ts
Outdated
|
|
||
| // These are 'technically' constants | ||
| let RECORDCOUNT = 350; | ||
| let HEADERS = ["ID", "City", "Population"]; |
There was a problem hiding this comment.
There's no point in giving these variables values, rather just define them with an appropriate type.
app.ts
Outdated
| let HEADERS = ["ID", "City", "Population"]; | ||
|
|
||
| // 'Global' get element | ||
| function el(element: string) { |
There was a problem hiding this comment.
remove this function as it just adds more overhead.
rather declare your document elements once so that you can reference them without having to call functions.
app.ts
Outdated
| // Fetch headers and record count | ||
| async function getData() { | ||
| // API calls for record count and headers | ||
| RECORDCOUNT = await (await fetch('/recordCount')).json(); |
There was a problem hiding this comment.
rather use this format:
await fetch(url).then(resp => {...})
and assign the values you need from resp
app.ts
Outdated
| async function getData() { | ||
| // API calls for record count and headers | ||
| RECORDCOUNT = await (await fetch('/recordCount')).json(); | ||
| HEADERS = await (await fetch('/columns')).json(); |
app.ts
Outdated
| async function deleteRows(newHeight: number, diff: number) { | ||
| let table = el("content-table"); | ||
| let tableBody = table?.querySelector("tbody"); | ||
| let num = newHeight - 1 |
app.ts
Outdated
| } | ||
| else if (diff > 0 && state.trimEnd == RECORDCOUNT - 1) { | ||
| // Prepend rows as last page gets bigger | ||
| let timeoutId: ReturnType<typeof setTimeout>; |
There was a problem hiding this comment.
remove timeoutId, as it is not used
app.ts
Outdated
| window.onload = () => { | ||
| state.trimStart = 0 | ||
| state.trimEnd = state.trimStart + state.records - 1; | ||
| el('first')?.setAttribute("disabled", "disabled"); |
app.ts
Outdated
| // > ))))))))))))))))={ | ||
| // `, ))))))\ \)))))))={ | ||
| // ',))))))))\/)))))' \{ | ||
| // '*O))))))))O*' |
| @@ -0,0 +1,197 @@ | |||
|
|
|||
| html { | |||
There was a problem hiding this comment.
there's a number of indentation issues are, make sure that your spacing is correct.
anzelIMQS
left a comment
There was a problem hiding this comment.
Just some cleaning up and logical separation stuff. Otherwise, it looks awesome.
app.ts
Outdated
|
|
||
|
|
||
| // These are 'technically' constants | ||
| let RECORDCOUNT = 350; |
There was a problem hiding this comment.
It would probably be a better idea to only define the global variables and not initialize them. Let the backend populate them accordingly even though we know what the values will be 😋. They shouldn't be considered as constants.
app.ts
Outdated
| } | ||
| else if (diff > 0 && state.trimEnd == RECORDCOUNT - 1) { | ||
| // Prepend rows as last page gets bigger | ||
| let timeoutId: ReturnType<typeof setTimeout>; |
app.ts
Outdated
|
|
||
| state.countRec = state.countRec + diff; | ||
| state.trimEnd = state.trimEnd + diff; | ||
| state.records = newHeight; |
There was a problem hiding this comment.
state.records = newHeight; is a line that gets repeated in all your conditional cases. Try to remove some repetition and optimise your if and else statements to only apply the necessary logic and have a clean look.
state.records = newHeight; can be called after your if/else statements then it is not necessary for the last else.
app.ts
Outdated
| start = state.trimStart - addTop; | ||
|
|
||
| for (let i = end; i >= start; i--) { | ||
| let recordsLink = "/records?from=" + i + "&to=" + i; |
There was a problem hiding this comment.
Try to remove the repetition for creating the link string and parsing it as a parameter.
Rather change the "addRows/prependRows" function to accept the start and end variables as parameters as well and create the link string inside that function.
app.ts
Outdated
|
|
||
|
|
||
| // Add rows to table | ||
| async function addRows(link: string) { |
There was a problem hiding this comment.
You can change the addRows function to accept a boolean as a parameter e.g. prepend. This boolean can determine if you want to append or prepend. Then it won't be necessary for the prependRows function. They have the exact same functionality.
| async function addRows(link: string) { | |
| async function addRows(link: string, prepend?: boolean) { |
app.ts
Outdated
| cellElement.textContent = cellText; | ||
| rowElement.appendChild(cellElement); // Append cells | ||
| } | ||
| tableBody?.appendChild(rowElement); // Append rows |
app.ts
Outdated
| end = state.trimStart - 1; | ||
| start = state.trimStart - diff; | ||
|
|
||
| for (let i = end; i >= start; i--) { |
There was a problem hiding this comment.
Is it necessary for a for loop though? It's not too efficient to fetch the records one-by-one.
Try to only request your batch of records once and handle the prepending logic only after that inside the "addRows/prependRows" function i.e your backward loop.
|
I think Pierre and Anzel covered everything I saw: especially on the repetitive code. And yes.. just keep swimming lol. |
FritzOnFire
left a comment
There was a problem hiding this comment.
Part 1 of the review, only got through the app.ts file, will do the rest later
app.ts
Outdated
| let records = Math.floor((window.innerHeight - 160) / 40); // Estimate of available table space | ||
| let trimStart: number; | ||
| let trimEnd: number; | ||
| let countRec: number; | ||
| let isAppend: boolean; | ||
|
|
||
| // Variables fetched once with load of window | ||
| let RECORDCOUNT: number; | ||
| let HEADERS: string[]; | ||
|
|
||
| // Global document elements | ||
| let contentTable: HTMLElement | null = document.getElementById('content-table'); | ||
| let tableBody: HTMLTableSectionElement | null = contentTable!.querySelector("tbody"); | ||
| let tableHead: HTMLElement | null = document.getElementById("content-thead"); | ||
| let pageInfo: HTMLElement | null = document.getElementById('page-info'); | ||
| let firstBtn: HTMLElement | null = document.getElementById('first'); | ||
| let prevBtn: HTMLElement | null = document.getElementById('prev'); | ||
| let nextBtn: HTMLElement | null = document.getElementById('next'); | ||
| let lastBtn: HTMLElement | null = document.getElementById('last'); | ||
| let inputBox: HTMLElement | null = document.getElementById('id-search'); |
There was a problem hiding this comment.
Global variables are bad. Please move them into a class.
app.ts
Outdated
| RECORDCOUNT = await fetch('/recordCount') | ||
| .then(resp => resp.json()); |
There was a problem hiding this comment.
So you rather want to set the value of RECORDCOUNT inside another then, like so:
.then(resp => {
// Check resp code for issues and `throw` if something went wrong.
return resp.json();
})
.then(count => {
RECORDCOUNT = count;
})This is also very important, as you have to add a catch to your fetch to check and handle errors.
app.ts
Outdated
| HEADERS = await fetch('/columns') | ||
| .then(resp => resp.json()); |
There was a problem hiding this comment.
Same comment as above, but about HEADERS
app.ts
Outdated
|
|
||
|
|
||
| // Fetch headers and record count | ||
| async function getData() { |
There was a problem hiding this comment.
Please add the return type to this function. (It should be Promise<void>)
app.ts
Outdated
| else if (diff > 0 && end >= RECORDCOUNT) { | ||
| let addEnd = (RECORDCOUNT - 1) - trimEnd; | ||
| end = RECORDCOUNT - 1; | ||
| start = end - addEnd + 1; | ||
| isAppend = true; | ||
| let recordsLink = "/records?from=" + start + "&to=" + end; | ||
| addRows(recordsLink); | ||
|
|
||
| let addTop = diff - addEnd; | ||
| end = trimStart - 1; | ||
| start = trimStart - addTop; | ||
| isAppend = false; | ||
|
|
||
| for (let i = end; i >= start; i--) { | ||
| let recordsLink = "/records?from=" + i + "&to=" + i; | ||
| await addRows(recordsLink); | ||
| } | ||
|
|
||
| trimEnd = RECORDCOUNT - 1; | ||
| trimStart = trimStart - addTop; | ||
| records = newHeight; | ||
| } |
There was a problem hiding this comment.
I think you should change the check for the previous if to also catch this case and remove this one, they will both have the same result.
app.ts
Outdated
| trimStart = trimStart - addTop; | ||
| records = newHeight; | ||
| } | ||
| else if (diff > 0 && start <= RECORDCOUNT - 1) { |
There was a problem hiding this comment.
Please put the else on the same line as the }
app.ts
Outdated
| records = newHeight; | ||
| } | ||
| else { | ||
| records = newHeight; |
There was a problem hiding this comment.
You seem to be doing this in every if or else. You should move it to after the ifs, then you can remove it from each if
app.ts
Outdated
| }, 100) | ||
| ); // Log window dimensions at most every 100ms |
app.ts
Outdated
| } | ||
| else { |
There was a problem hiding this comment.
Please put this else on the same line as the }
FritzOnFire
left a comment
There was a problem hiding this comment.
Really appreciate the extra detail you put into all of the css, she is not an easy one to master.
You seem to be focusing alot on making tiny calls to the back-end, but what you should be focusing on is making as few calls as possible (with-out fetching everything of coarse). Rather figure out before hand what all the rows are that you need, and only do one call per user input (obviously this becomes even less with your debouncing)
index.html
Outdated
| <h1>IMQS Onboarding Project</h1> | ||
| </div> | ||
| <div class="constrols-search"> | ||
| <button class="search-btn" onclick="searchFunction()">Search ID</button> |
There was a problem hiding this comment.
You should not specify the onclick here, this should be done in your typescript code.
index.html
Outdated
| <p id="page-info" class="page-info"></p> | ||
| </div> | ||
| </div> | ||
| <script type="text/javascript" charset="utf-8" src="app.js"></script> |
There was a problem hiding this comment.
Your scripts should all be in the head tag
style.css
Outdated
| @@ -0,0 +1,197 @@ | |||
|
|
|||
There was a problem hiding this comment.
Please remove this empty line.
style.css
Outdated
| .controls { | ||
| display: flex; | ||
| text-overflow: clip; | ||
| white-space: nowrap; |
There was a problem hiding this comment.
Please change the spaces to tabs here. (You can add "editor.renderWhitespace": "all", to your vscode settings to catch stuff like this.)
style.css
Outdated
| border: solid 1px #cae00d; | ||
| } | ||
|
|
||
|
|
There was a problem hiding this comment.
Please remove this empty line.
style.css
Outdated
| text-overflow: clip; | ||
| white-space: nowrap; | ||
| background-color: #16191e; | ||
|
|
There was a problem hiding this comment.
Please remove this empty line.
style.css
Outdated
|
|
||
| } | ||
|
|
||
| /* Page n underneath table */ |
There was a problem hiding this comment.
I think you are missing a few letters here. (or you have to many?)
style.css
Outdated
|
|
||
| /* Pagination buttons */ | ||
| .pagination-wrapper { | ||
| width: 70%; |
There was a problem hiding this comment.
Same comment about the spaces here.
style.css
Outdated
| } | ||
|
|
||
| .btn { | ||
| color: #fdfdfd; |
There was a problem hiding this comment.
Same comment about the spaces here.
| .loader { | ||
| height: 100vh; | ||
| width: 100vw; | ||
| overflow: hidden; | ||
| background-color: #16191e; | ||
| /* position: absolute; */ | ||
| align-items: center; | ||
| } | ||
|
|
||
| .loader>div{ | ||
| height: 6rem; | ||
| width: 6rem; | ||
| border: 15px solid #45474b; | ||
| border-top-color: #cae00d; | ||
| position: absolute; | ||
| margin: auto; | ||
| top: 0; | ||
| bottom: 0; | ||
| left: 0; | ||
| right: 0; | ||
| border-radius: 50%; | ||
| animation: spin 1.5s infinite linear; | ||
| } | ||
|
|
||
| @keyframes spin { | ||
| 100%{ | ||
| transform: rotate(360deg); | ||
| } | ||
| } |
There was a problem hiding this comment.
Very awesome! Great to see the extra effort :)
FritzOnFire
left a comment
There was a problem hiding this comment.
Just some small comments, and questions, you can make the changes if you want, but I would say you are done :)
| if (resp == true) { | ||
| state.loadIntoTable(true); | ||
| } | ||
| }) |
| @@ -0,0 +1,384 @@ | |||
| "use strict"; | |||
There was a problem hiding this comment.
Please add your js files to your gitignore. (But make sure that jquery is still included)
| @@ -0,0 +1 @@ | |||
| {"version":3,"file":"state.js","sourceRoot":"","sources":["state.ts"],"names":[],"mappings":"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"} No newline at end of file | |||
There was a problem hiding this comment.
Please add your .js.map files to your gitignore
| console.error(error); | ||
| }); | ||
|
|
||
| return true; |
| // Prepend rows as last page gets bigger | ||
| end = this.getRecordCount() - 1; | ||
| start = end - (newHeight - 1); | ||
| console.log("End reached, displaying record ", start, " to ", end); |
There was a problem hiding this comment.
Remove stray console log
| .then(count => { | ||
| this.data = count; |
There was a problem hiding this comment.
I dont think this should be called count
| start = end - (newHeight - 1); | ||
| console.log("End reached, displaying record ", start, " to ", end); | ||
|
|
||
| await this.addRows(start, end); |
There was a problem hiding this comment.
Why does only this addRows have an await?
No description provided.