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
Ux manage servers #415
Ux manage servers #415
Conversation
Somehow CircleCI didn't build the PR (probably due to preferences). So I made the artifacts in my fork. https://circleci.com/gh/yuya-oc/desktop/132#artifacts |
What's going on with the tests? It worked for me locally... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
valid-url
is missing in src/package.json
.
That was pretty obvious... 👍 |
Testable artifacts are available. https://circleci.com/gh/mattermost/desktop/839#artifacts |
Yay, this is great @jnugh! Will test it out today! 🎉 |
Thanks @jnugh! This is really well done! I've been testing it out yesterday and today. There are a few notes / pieces of feedback to consider when you have the chance - even though they might seem like a lot, it's just mostly small UX notes. Functionally everything is working really well! Love it :) 1) "Add Server" dialogProposals (based on #400, part 3): VISUAL: 1a) Change title from FUNCTIONALITY: Propose that when a user presses ERROR HANDLING: 1h) Propose that errors aren't displayed until the user hits the "Add" button or hits Enter. This is consistent with other Mattermost dialogs, and is more forgiving to the user (we want to avoid telling the user they made a mistake, unless they actually made one). When the user hits "Add" and if there's an error that prevents adding the server, then
1i) Error messages (from #400)
2) "Edit Server" dialogIt looks like clicking "Edit" on the Settings page opens the same "Add Server" dialog without pre-populated information. Propose that
3) "+" icon3a) Propose removing the border around the "+" icon in server navigation tab bar -- it makes it look a bit prominent (I noticed that my eyes keep getting drawn to it). (Propose we keep the hover effect though) 4) MiscellaneousThis is just something that came to mind during testing and would probably be a separate improvement ticket: If there is only one server tab, then the "+" icon isn't visible since the server navigation bar is hidden automatically. Hence, it's not obvious how to add a new server in that case. I'm not a huge fan for showing the tab bar when there is only one server, and I think we should continue to hide it. Otherwise, it would just be wasted space on the app window for those who only have one server. However, we could consider adding a new option in the menu bar such as Sign in to Another Server or Add a New Server, perhaps under File or Window, which opens the "Add Server" dialog when clicked. That way it'll at least be more discoverable. Other ideas would be welcome. |
Thanks for your response! All sounds good. 1h-i): Ah, you're right. Yes, let's add it at the bottom left instead. User's eyes are drawn towards the "Add" button and hence you notice the error message more easily if it's close to it. That way you also don't have to move the help text down if there's an error message present. 2): Yeah, I think using the "Edit Server" dialog would be better for a consistent experience. Also, right now the 'edit server' input fields appear at the bottom of the server list, which isn't necessarily clear to users (it looks like you're adding a new server). This would also cover part 4 of #400 ticket. 3): Let me know if that's tricky to change, happy to discuss it Propose adding it as the first item on the File drop-down list. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A prop
is not a state, so it should not be changed by the component itself. However, probably to fix this is a little difficult in this PR. So please add some comments.
src/browser/components/MainPage.jsx
Outdated
this.setState({ | ||
showNewTeamModal: false | ||
}); | ||
this.props.teams.push(newTeam); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prop is changed.
src/browser/components/TeamList.jsx
Outdated
this.setState({ | ||
showNewTeamModal: false | ||
}); | ||
this.props.teams.push(newTeam); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prop is changed.
Almost was done in above discussion 👍 |
src/browser/components/MainPage.jsx
Outdated
var modal; | ||
if (this.state.showNewTeamModal) { | ||
modal = ( | ||
<NewTeamModal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possibly you can use show
parameter of ReactBootstrap.Modal. In my memory, it would make better animation. Please see LoginModal
in this render()
.
Thanks for the continued progress @jnugh! |
Hey @jnugh! Just checking how things are going? :) |
Here comes another bunch of changes :) From what I see, the only thing missing is to change the plus sign... I tried a usual link but that does not match the layout at all. So some more Styling is needed here. |
Awesome! 🎉 Let me know if you need any help with CSS on the plus sign styling, I can ask our UI designer to help take a look too. |
Please let me confirm. Is the part 4 of #400 intended in this PR? I could not close the modal which is opened by "Edit". And if I click the outside of modal or "Cancel", the server is unexpectedly duplicated. Repro steps:
If the step 2 is skipped, the modal correctly works. However the key functionality (especially modal) would be done in this PR. So I feel that I can take over the rest though, how do you feel? |
That should be fixed now :) |
Thanks @jnugh! Let me test it out as well, thanks for all your help here! |
The feature looks working 👍 |
Thanks @jnugh! Looking great! Just minor notes:
equal? Let's use the spacing between the bottom line and
We have a really nice animation for the "Add Server" dialog when it appears (yay!). However, the same animation doesn't happen when the dialog closes. It's more abrupt. Wondering if this is easy to update so the experience is consistent?
I couldn't reproduce it with our 3.5 release, so seems it might be caused by this PR.
I could ask our UI guru (asaad) to take a look. It might be quick for him and we' be able to apply it already on this PR. |
|
Update: I tested 1) and 2), looks good! The commit for 3) seems to break the build, so I couldn't test it yet: 1343dce Also asked Asaad to take a look at 5) |
1343dce
to
faa5177
Compare
Tests were not waiting for animation - fixed that one. |
faa5177
to
049e8e0
Compare
049e8e0
to
9996687
Compare
@jnugh I tested 3) and 4), works great. @asaadmahmood will take a look at the styling of the "+" sign once this PR has merged. @yuya-oc please feel free to merge if this looks good to you |
Looks good. Thanks @jnugh many times! |
Before submitting, please confirm you've
npm run lint:js
for proper code formattingPlease provide the following information:
Summary
Adds a button to the Tab Header which allows the user to add a new team without opening the settings page. Use the new Modal in the settings view as well.
Issue link
#400, #401
Test Cases
Add a new server from the tab header and the settings page.
I added multiple specs that test if newly added teams are being persisted and if the modal behaves as expected in general.
I'm not sure if the way I do error handling is a good idea, I just saw that #400 defines an area where the error message should be displayed - I think that it's best to have the message next to the input that is incorrect but I could change it (might be a good idea to discuss).