Closed 7malikk closed 1 year ago
@jywarren Hello, here's a PR for the pagination, its a tad chunky, implemented some of the lessons from the last PR. I do look forward to your review, thank you!
Hello, @jywarren @PeculiarE here is my implementation of the modules. Thank you so much @PeculiarE for your help.
I decided to go with a class as implied in our discussion, it served its purpose satisfactorily in my opinion, but I'd love to hear your thoughts on it. Thank you.
I also added some comments, but I believe it's quite understandable at a glance, I am open to suggestions.
@segun-codes I could use your opinion too, thank you!
For readability purposes, do you want to change class name from
Paginate
toPaginator
? If yes, you may also want to rename the filepagination.js
topaginator.js
. Finally, canprevBtn
,nextBtn
andrange
be initialized in the class constructor, without breaking anything, just to have complete encapsulation?Great work so far @7malikk!
Great suggestions @segun-codes
Concerning the paginate
to Paginator
that sounds great!
I'd give all you've said a try and see how it plays out.
Thanks so much for your input.
Hi! I made some further suggestions for how we can tuck even more functionality into the Pagination class, and not have to have it interact with outside code at all. I think this really simplifies the main archive.js file -- tell me what you think, and if you'd like I can suggest some ways to implement this!
Thank you so much @jywarren
I think they're very good suggestions
And it's a good objective to simplify the main archive.js
.
I would give all you've said a try, if I do come into any issues, I'd reach out to you for some suggestions. If that's fine by you? @jywarren
Thank you once again.
@jywarren I am currently working on an implementation that could move a lot of code to the Pagination
Class
code such as the renderImages
and renderThumbnails
functions, alongside the handleNext
and handlePrev
functions.
What do you think?
@jywarren I am currently working on an implementation that could move a lot of code to the
Pagination
Class code such as therenderImages
andrenderThumbnails
functions, alongside thehandleNext
andhandlePrev
functions.What do you think?
Hi @7malikk - I think it makes sense to me that renderImages
and renderThumbnails
remain in archive.js, as they are not specific to pagination. However, at some point, I could imagine breaking them out into an archive-interface.js file, or maybe /examples/js/archive/interface.js
? - so that archive.js
begins to be where all the code comes together at a high level for integration, but implementation of each specific kind of code, or each different functionality, is broken into other files.
I think a lot about how best to break things up, and one way to do it is to think - can this code work, fundamentally, if you remove this module? In this case - is pagination core to the functionality? It could be said that it's peripheral - makes the experience better, but isn't critical. That's a good candidate for breaking out. But rendering images, is that core? More so. It's not the only way to subdivide code, but it's helpful.
@jywarren I am currently working on an implementation that could move a lot of code to the
Pagination
Class code such as therenderImages
andrenderThumbnails
functions, alongside thehandleNext
andhandlePrev
functions. What do you think?Hi @7malikk - I think it makes sense to me that
renderImages
andrenderThumbnails
remain in archive.js, as they are not specific to pagination. However, at some point, I could imagine breaking them out into an archive-interface.js file, or maybe/examples/js/archive/interface.js
? - so thatarchive.js
begins to be where all the code comes together at a high level for integration, but implementation of each specific kind of code, or each different functionality, is broken into other files.I think a lot about how best to break things up, and one way to do it is to think - can this code work, fundamentally, if you remove this module? In this case - is pagination core to the functionality? It could be said that it's peripheral - makes the experience better, but isn't critical. That's a good candidate for breaking out. But rendering images, is that core? More so. It's not the only way to subdivide code, but it's helpful.
I never thought about it in such a 'grand-scheme of things' way, and i totally agree as to breaking files where the functionality broken off is not core to the program. Thank you for your insight as usual @jywarren I am really glad to be your mentee.
Hello, @jywarren I think this is ready for a merge. let me know what you think, thank you!
This looks fantastic and I think it is ready to merge - with one last question first... where is
range
defined? Did some code get deleted by mistake? Just checking! Thanks!
Oh not at all It's a js shorthand, where one doesn't need to define a variable as long as the id value in the Html and the reference in the js file are the same. for example:
In the .html file
<p id='range'> My Range </p>
In the .js file
console.log(range.innerHtml) // <--- this will return "My Range"
I could define it to avoid any misconceptions.
@jywarren
Oh not at all It's a js shorthand, where one doesn't need to define a variable as long as the id value in the Html and the reference in the js file are the same. for example:
I could define it to avoid any misconceptions.
OMG i read about that! Let's leave it -- very nice.
If you could resolve the conflicts by rebasing, I'll merge. Thanks @7malikk !!!
Alright @jywarren
@jywarren Final touches have been made, can we proceed? Thank you! π
Hooray! Great work!!!!
Hooray! Great work!!!!
Thank you @jywarren!!
Hooray! Great work!!!!
Thank you @jywarren!!
Congratulations @7malikk
Congratulations @7malikk
Thank you @segun-codesππ
Fixes #1300
grunt test
For a link with images over 100
For a link with images below 100