Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Andrey action menu #265

Closed

Conversation

zadorogniyandrey
Copy link
Contributor

action-menu

Demo |
Code base

The code is submitted in a dedicated feature branch.

Only code files are submitted.

Please, review.

@OleksiyRudenko
Copy link
Member

OleksiyRudenko commented Aug 22, 2022

Please read bot's explanations and instructions carefully.

Check your PR files here:
image

Feel free to ask questions. Students' chat will be very helpful in resolving this issue.

@OleksiyRudenko
Copy link
Member

A risky approach. I am not sure if it won't delete files from the PopUp task.
On commercial project this would pose a serious problem.
We need to keep an eye on what happens after this PR gets merged.
Before submitting your next task keep the constribution instructions handy.

@github-actions
Copy link

Hey!

Congratulations on your PR! 😎😎😎

Let's do some self-checks to fix most common issues and to make some improvements to the code before reviewers put their hands on the code.

Go through the requirements/most common mistakes listed/linked below and fix the code as appropriate.

If you have any questions to requirements/common mistakes feel free asking them here or in Students' chat.

When you genuinely believe you are done put a comment stating that you have completed self-checks and fixed code accordingly.

Also, be aware, that if you would silently ignore this recommendation, a mentor can think that you are still working on fixes. And your PR will not be reviewed. 😒

Please, make sure you haven't made common mistakes

Universal recommendations:

  • Give variables and functions meaningful names. Avoid generic names like item, element, key, object, array or their variations. Exception: helper functions that are specifically and intentionally designed to be multipurpose.
  • Function names should start with a verb as they denote actions; variables are normally nouns; boolean variables/functions start with is, does, has etc; variable containing multiple entities and functions returning lists contain entity name in plural form.
  • Have consistent code style and formatting. Employ Prettier to do all dirty work for you.
  • Use common sense or seek for an advice whenever requirements look ambiguous or unclear.

Also take a note of the requirements above and follow them in all your future projects.

By the way, you may proceed to the next task before this one is reviewed and merged.

Sincerely yours,
Submissions Kottachecker 😺

@zadorogniyandrey
Copy link
Contributor Author

I understand that I have to delete unnecessary files from the "change file", but I don't understand how to do it(

@OleksiyRudenko
Copy link
Member

@zadorogniyandrey

Oh, I see... Your PopUp wasn't in its own dedicated folder, so you needed to move it. And you did this in a single commit. You cannot really split a commit. They are atomic. Learning: commit frequently and never do "big things" in one commit. Merging commits is easier than splitting them.

Let's fix this in two steps.

Step 1. Renaming files.
Create a new branch (from main), move popup files, commit, push, open PR, ping me.

I'll let you know what to do next.

@zadorogniyandrey
Copy link
Contributor Author

Thanks! I opened a new PR

@OleksiyRudenko
Copy link
Member

#266 merged.
Update your local main from upstream.
Rebase your andrey-action-menu on main.
Force push andrey-action-menu.

If any step fails, post an error message here. If in doubt ask questions.

@zadorogniyandrey
Copy link
Contributor Author

zadorogniyandrey commented Aug 22, 2022

to force push I have to go to the andrey-action-menu branch and enter git push origin andrey-action-menu -f?

@OleksiyRudenko
Copy link
Member

Yes

@zadorogniyandrey
Copy link
Contributor Author

it worked) thank you!

@github-actions
Copy link

Hey!

Congratulations on your PR! 😎😎😎

Let's do some self-checks to fix most common issues and to make some improvements to the code before reviewers put their hands on the code.

Go through the requirements/most common mistakes listed/linked below and fix the code as appropriate.

If you have any questions to requirements/common mistakes feel free asking them here or in Students' chat.

When you genuinely believe you are done put a comment stating that you have completed self-checks and fixed code accordingly.

Also, be aware, that if you would silently ignore this recommendation, a mentor can think that you are still working on fixes. And your PR will not be reviewed. 😒

Please, make sure you haven't made common mistakes

Universal recommendations:

  • Give variables and functions meaningful names. Avoid generic names like item, element, key, object, array or their variations. Exception: helper functions that are specifically and intentionally designed to be multipurpose.
  • Function names should start with a verb as they denote actions; variables are normally nouns; boolean variables/functions start with is, does, has etc; variable containing multiple entities and functions returning lists contain entity name in plural form.
  • Have consistent code style and formatting. Employ Prettier to do all dirty work for you.
  • Use common sense or seek for an advice whenever requirements look ambiguous or unclear.

Also take a note of the requirements above and follow them in all your future projects.

By the way, you may proceed to the next task before this one is reviewed and merged.

Sincerely yours,
Submissions Kottachecker 😺

@zadorogniyandrey
Copy link
Contributor Author

I checked the work and fixed a bug. Please review my work

@stale
Copy link

stale bot commented Sep 7, 2022

This issue has been automatically marked as stale because there were no activity during last 14 days. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

А. Чому так?
Найбільш розповсюджена причина: Студент не реагує на коментарі змінами коду і не задає запитань через брак часу або зміну життєвих пріоритетів. Покинуті піари відволікають менторів. Коли у студента з'явиться час, він/вона зможе перевідкрити той самий піар і продовжити роботу.

Б. Що робити, якщо в піарі нема оновлень, оскільки не зрозуміло, що треба зробити?
Варіант 1. Задати питання в самому PR.
Варіант 2. Задати питання в студентському чаті.

В. А якщо я все зробив(ла) і це ментор не рев'юває мої зміни?

  1. Переконайся, що ти відреагував(ла) на всі коментарі або кодом, або запитаннями, або відповідями. Напиши в PR і в чаті, що чесно вважаєш, що все зроблено і попроси повторне рев'ю. Якщо щось не зрозуміло, задай запитання.
  2. Реагуй на коментарі як менторів, так і інших учасників, включаючи ботів.
  3. Не ігноруй прохання типу * "Let's do some self-checks ..." * "Go through the checklist below..." * "mark fulfilled requirements..." * "if you would silently ignore this recommendation, a mentor may think that you are still working on fixes"
    навіть якщо вони написані ботом. Боти помічники і ментори покладаються на те, що прохання і пропозиції бота дотримуються.
    Не лінись піти по лінках в коментарях, погуглити термінологію та скористатись Google Translate.
  4. Можливо, у менторів склалися інші пріоритети через роботу, сімейні обставини і т.п. В такому разі, якщо ти зробив(ла) рекомендоване вище, то волай в чаті, що PR позначений stale, наче, все зроблено, а ментори чомусь не реагують - рятуйте!

Г. Хіба недостатньо того, що я додав(ла) коміт із змінами?
Часто буває так, що бачиш новий коміт, ідеш перевіряти, змін багато, доводиться перечитувати весь код. А потім з'ясовується, що одна невеличка зміна "відкладена на потім" чи з'являється ще один коміт і знов треба перечитувати все. Любіть нас, спілкуйтеся з нами - і ми відповімо повною взаємністю.

Традиційна пропозиція: задай питання по вищенаписаному в студентському чаті.

@stale stale bot added the 💤 Stale label Sep 7, 2022
@OleksiyRudenko
Copy link
Member

A proposal: post a link to your app demo and source code in Students' chat and ask peers for review.
Collect feedback, fix issues, if user acceptance testing (UAT) reveals any.
Once done, post here a message like "UAT requested, feedback collected, fixes implemented" and a link to your request for UAT in telegram. (See this for an example of UAT-related message)

P.S. Also this my comment should remove Stale label.

@stale stale bot removed the 💤 Stale label Sep 7, 2022
@A-Ostrovnyy A-Ostrovnyy self-assigned this Sep 11, 2022
Copy link
Collaborator

@A-Ostrovnyy A-Ostrovnyy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work!

submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
@zadorogniyandrey
Copy link
Contributor Author

Thanks! I'll try to fix

@zadorogniyandrey
Copy link
Contributor Author

zadorogniyandrey commented Sep 13, 2022

I have corrected the errors. But not sure if I used the append method correctly

Copy link
Collaborator

@A-Ostrovnyy A-Ostrovnyy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good progress!

const main = document.querySelector(".main");
const menuItems = (item, menuList) => {
item.map(function (item) {
let sideWrap = document.createElement('div');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

div can't be a child element of the ul for this case use createFragment

menuList.append(sideWrap)
});
};
const content = (i = 1, arr = companies) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functions denote actions hence their names should start with a verb. Variables containing strings, numbers, and objects are normally nouns. Boolean variables/functions start with is, does, has etc. A variable containing multiple entities and functions returning lists containing entity names in plural form.

submissions/zadorogniyandrey/action-menu/js/main.js Outdated Show resolved Hide resolved
@zadorogniyandrey
Copy link
Contributor Author

Thank you! I didn't know about create fragment. Is creating templates the right solution?

@zadorogniyandrey
Copy link
Contributor Author

I did it with templates because I didn't find a way to insert a code snippet using document.createFragment

Copy link
Collaborator

@A-Ostrovnyy A-Ostrovnyy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good progress!

item.map(function (item) {
let sideWrap = document.createElement('template');
sideWrap.innerHTML = `<li class="sidebar__menu__item"><button class="sidebar__btn" data-company = ${item.id}>${item.title}</button></li>`;
menuList.append(sideWrap.content);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding elements to DOM from a loop is a bad practice. A browser will run reflow and repaint for every element in the loop. Instead, you can:

  1. Use append method, which can add several elements in one operation.
  2. Create some wrapper, add your items to the wrapper and then add it to DOM. It will be one operation.
  3. Clone current container. Add items to a container and then replace your old container with a new one. But be aware of event listeners.
  4. Use innerHTML instead.

];
const menu = document.querySelector(".sidebar__menu");
const main = document.querySelector(".main");
const addmenuItems = (item, menuList) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the point to use menuList parameter if you use this function once, and in this parameter, you pass menu element from line 47?

`;
};
const changeContent = (e) => {
let btn = e.target;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use const for elements that will not be changed.

menuList.append(sideWrap.content);
});
};
const addcontent = (i = 1, arr = companies) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you add a second parameter if you do not pass him in your code?

@stale
Copy link

stale bot commented Sep 28, 2022

This issue has been automatically marked as stale because there were no activity during last 14 days. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

А. Чому так?
Найбільш розповсюджена причина: Студент не реагує на коментарі змінами коду і не задає запитань через брак часу або зміну життєвих пріоритетів. Покинуті піари відволікають менторів. Коли у студента з'явиться час, він/вона зможе перевідкрити той самий піар і продовжити роботу.

Б. Що робити, якщо в піарі нема оновлень, оскільки не зрозуміло, що треба зробити?
Варіант 1. Задати питання в самому PR.
Варіант 2. Задати питання в студентському чаті.

В. А якщо я все зробив(ла) і це ментор не рев'юває мої зміни?

  1. Переконайся, що ти відреагував(ла) на всі коментарі або кодом, або запитаннями, або відповідями. Напиши в PR і в чаті, що чесно вважаєш, що все зроблено і попроси повторне рев'ю. Якщо щось не зрозуміло, задай запитання.
  2. Реагуй на коментарі як менторів, так і інших учасників, включаючи ботів.
  3. Не ігноруй прохання типу * "Let's do some self-checks ..." * "Go through the checklist below..." * "mark fulfilled requirements..." * "if you would silently ignore this recommendation, a mentor may think that you are still working on fixes"
    навіть якщо вони написані ботом. Боти помічники і ментори покладаються на те, що прохання і пропозиції бота дотримуються.
    Не лінись піти по лінках в коментарях, погуглити термінологію та скористатись Google Translate.
  4. Можливо, у менторів склалися інші пріоритети через роботу, сімейні обставини і т.п. В такому разі, якщо ти зробив(ла) рекомендоване вище, то волай в чаті, що PR позначений stale, наче, все зроблено, а ментори чомусь не реагують - рятуйте!

Г. Хіба недостатньо того, що я додав(ла) коміт із змінами?
Часто буває так, що бачиш новий коміт, ідеш перевіряти, змін багато, доводиться перечитувати весь код. А потім з'ясовується, що одна невеличка зміна "відкладена на потім" чи з'являється ще один коміт і знов треба перечитувати все. Любіть нас, спілкуйтеся з нами - і ми відповімо повною взаємністю.

Традиційна пропозиція: задай питання по вищенаписаному в студентському чаті.

@stale stale bot added the 💤 Stale label Sep 28, 2022
@stale stale bot closed this Oct 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants