Skip to content

[IMPROVE] UI design for Tables and tabs component on Directory#11026

Merged
ggazzo merged 30 commits into
developfrom
table-component
Jun 19, 2018
Merged

[IMPROVE] UI design for Tables and tabs component on Directory#11026
ggazzo merged 30 commits into
developfrom
table-component

Conversation

@karlprieb

@karlprieb karlprieb commented Jun 6, 2018

Copy link
Copy Markdown
Contributor

A better design for tables and tab component, applied on Directory page.

Still needs to write a documentation about these new components and how the directory feature works. We can make a blogpost. What you @RocketChat/core think?

2018-06-07 15 47 41

@karlprieb karlprieb added the area: ui/ux Related to UI/UX, frontend code, accessibility, and user interaction label Jun 6, 2018
@karlprieb karlprieb added this to the 0.66.0 milestone Jun 6, 2018
@karlprieb karlprieb requested review from gdelavald and ggazzo June 6, 2018 22:34
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 6, 2018 22:35 Inactive
@gdelavald

gdelavald commented Jun 7, 2018

Copy link
Copy Markdown
Contributor

There is this weird delay when toggling between users and channels, could this be a performance issue?

Also, you can't order channels based on user quantity, and even though the cursor shows as pointer there is no mouse event on clicking the rows, which can be misleading.

@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 7, 2018 18:02 Inactive
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 7, 2018 18:47 Inactive
@karlprieb karlprieb changed the title [WIP] [FIX] Table and tabs component for Directory [FIX] Table and tabs component for Directory Jun 7, 2018
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 7, 2018 18:49 Inactive
@graywolf336

Copy link
Copy Markdown
Contributor

Why is the name of this pull request labeled as [FIX] when the description says:

New table and tab component applied on Directory page.

@ggazzo

ggazzo commented Jun 8, 2018

Copy link
Copy Markdown
Member

@graywolf336 ... the design is new, but we didnt change nothing as feature, just fixed the bad UI, or am I wrong?

@ggazzo ggazzo changed the title [FIX] Table and tabs component for Directory [FIX] UI design for Tables and tabs component on Directory Jun 8, 2018
@geekgonecrazy

Copy link
Copy Markdown
Contributor

Should we instead use an improve tag? Instead of fix or new.

@vynmera

vynmera commented Jun 9, 2018

Copy link
Copy Markdown
Contributor

@geekgonecrazy Good call, an IMPROVE tag would make the most sense here.

Furthermore, by using a tag like that, we might get more people to polish up the existing parts of RC, something quite important to good UX and code :-)

@ggazzo

ggazzo commented Jun 9, 2018

Copy link
Copy Markdown
Member

I agree @geekgonecrazy , but I thought we had just NEW, BREAK, FIX

@vynmera

vynmera commented Jun 9, 2018

Copy link
Copy Markdown
Contributor

@ggazzo that's the issue, I think~

@geekgonecrazy

geekgonecrazy commented Jun 9, 2018

Copy link
Copy Markdown
Contributor

@ggazzo right we only have the 3. I'm suggesting we consider one more. That way things such as component redesign can be surfaced separately so we can make it more clear the components we improve vs the ones we fix a bug only.

Like some times we completely rework something for the purpose of improving a lot of things and it does close bugs, but over all we improved functionality.

Just an idea. @rodrigok what do you think? That or should we add a tag to PR's that it's design, that way they can be found that way? Could also surface based on that in changelog?

@ggazzo ggazzo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

  • Mobile view
  • Scroll or pagination
  • Different Icons on each table rooms/users
  • loading state
  • debounce the search when typing

As we can only search by name I think in small screens (mobile) we should hide the another fields.

My suggestion:

image

mobile now:

image

}

.tab {
margin: 0 1rem;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think you should use transition: color .3s; here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

👍

Template.table.events({
'click tbody tr'() {
const onItemClick = Template.instance().data.onItemClick;
if (onItemClick) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

return onItemClick && onItemClick(this)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

👍


Template.tabs.events({
'click .tab'(e) {
$('.tab').removeClass('active');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this way will not work for nested tabs

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

how nested tabs should work? We will have nested tabs? We already have a design for that?

@ggazzo ggazzo Jun 12, 2018

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

we dont have design to nested to show you now, but just to think...
, and we can have more than one per page... you are looking for ALL .tabs and maybe you are creating a bug
image
you did here, why not keep inside the component?

Template.tabs.onRendered(function() {
	this.$('.tab').first().addClass('active');
	this.data.tabs.onChange(this.data.tabs.tabs[0].value);
});

and more we are using a reactive framework, please change that using reactive vars.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can we do a simple {activeClass} variable on the helper and change according to state?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I created a 'ReactiveVar' to keep the state of the active tab and adde a helper to check which tab is active and add an active class to this tab.

Thank you for your suggestions :)

};
},
onTableItemClick() {
const searchType = Template.instance().searchType;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

const { searchType } = Template.instance();

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

👍

@ggazzo ggazzo changed the title [FIX] UI design for Tables and tabs component on Directory [IMPROVE] UI design for Tables and tabs component on Directory Jun 12, 2018
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 12, 2018 18:00 Inactive
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 12, 2018 18:02 Inactive
@karlprieb

Copy link
Copy Markdown
Contributor Author

@gdelavald it is fixed now 👍

@kaiiiiiiiii

kaiiiiiiiii commented Jun 14, 2018

Copy link
Copy Markdown
Contributor

Hey @karlprieb,

two more things.

  1. Room Name and Description look a bit displaced when a channel description is given.
  2. Is there a reason why the description width is still limited to 200px? Doesn't make any sense on large screens IMO. Some of our project channels have really long descriptions (100-200 words) and it would be nice to see more than just the first 5 words :)

screen shot 2018-06-14 at 21 36 34

// 3. Username and Name are swapped?! And it looks like the order is case sensitive =/

screen shot 2018-06-14 at 21 49 42

@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 14, 2018 20:08 Inactive
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 14, 2018 20:38 Inactive
@karlprieb

Copy link
Copy Markdown
Contributor Author

@kaiiiiiiiii Thank you for your report :)

I already fixed the first problem.
For the second and third problems we will need some help from our design team, so I won't be able to fix that today.

@ggazzo ☝️

@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 15, 2018 17:49 Inactive
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 17, 2018 23:59 Inactive
@karlprieb

Copy link
Copy Markdown
Contributor Author

Hey @kaiiiiiiiii we will remove channel description from this table layout for now. In a near future we will add a extended (with descriptions) and compact layout for this table, just like we did with the sidebar.

Thank again for your reports :)

@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 18, 2018 00:00 Inactive
@engelgabriel engelgabriel temporarily deployed to rocket-chat-pr-11026 June 19, 2018 17:40 Inactive
@ggazzo ggazzo temporarily deployed to rocket-chat-pr-11026 June 19, 2018 18:43 Inactive

@gdelavald gdelavald left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Lgtm

@ggazzo ggazzo merged commit 9a93ccb into develop Jun 19, 2018
@ggazzo ggazzo deleted the table-component branch June 19, 2018 21:11
@rodrigok rodrigok mentioned this pull request Jun 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ui/ux Related to UI/UX, frontend code, accessibility, and user interaction

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants