-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Laushinka/error form 10062 #10071
Laushinka/error form 10062 #10071
Conversation
a649215
to
e6fe246
Compare
79bcd31
to
ab9830a
Compare
3987aeb
to
469cc5c
Compare
Thanks @laushinka - that works well - I have a few layout suggestions mainly intended to tone down the new UX by making it smaller and lighter and a bit more separate.
|
469cc5c
to
196c5e7
Compare
@jldec I thought I was editing the images in the description but I ended up editing your images 🥲 |
196c5e7
to
2b4824d
Compare
@jldec Ready for another review. |
Rerunning werft for the analytics flag. /werft run 👍 started the job as gitpod-build-laushinka-error-form-10062.17 |
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.
Thanks @laushinka for pushing this forward!
Sorry for hijacking the review, but this PR grabbed my attention from UX perspective.
Please, let me know if there's a better way to send feedback like the following and be respectful of everyone's time, avoid reverting our own UX changes, and avoiding back and forth in development. If needed, let's move all the UX feedback below to a separate follow-up issue. ➿ Cc @jldec
{minimisedFirstView && ( | ||
<div | ||
className={ | ||
"flex flex-col justify-center px-6 border-t border-gray-200 dark:border-gray-800 " + |
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.
question: Did we discuss anywhere the idea of reusing the existing feedback modal when a user clicks on one of the emojis? This could reuse the same component as is and save us a ton of vertical space, which is quite crucial in the workspace start page.
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.
Do you mean that instead of expanding in page, we would trigger the modal? Good point re the vertical space, but in an error page, the user might want to keep the error and context always in sight, instead of blocked by a modal.
Let me also loop in @jldec
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.
Do you mean that instead of expanding in page, we would trigger the modal?
Yes.
Good point re the vertical space, but in an error page, the user might want to keep the error and context always in sight, instead of blocked by a modal.
Fair point, just wanted to bring this up in case this has not been taken into account and could be worth considering.
|
||
const height = props.isModal ? "300px" : ""; |
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.
question: Coming to this line triggered from the comment in #10071 (comment). Although non-blocking and a minor issue, is there a technical limitation that led us to remove this?
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.
Made a comment here Ah you already linked it. Yes that was the technical limitation from my end - would love some pointers here!
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.
@laushinka Haven't checked this in-depth, but I was thinking we could explicitly and conditionally set padding using utility classes for having a fixed modal height in the case of the modal, as we do now in https://github.com/gitpod-io/gitpod/pull/10071/files#diff-51811862e7996f416f9f7d73ff24341eecd96f3c083fb46d1b00b6cf94b50686R139. Since we're using a specific typography and spacing scale system, there must be a padding values that could help us set a modal height exactly as it the step 2 of the feedback modal.
882aa12
to
50b79c0
Compare
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.
@laushinka UX review round two, done.
I have a feeling that our attempt to reuse some components in combination with the limited discussion of the UX of the scope of this change has led us to go into small circles. If you think any UX feedback here can be addressed separately, let's do that, as the initial state of this PR carried quite a few UX issues and don't want to block this from being merged. Just bringing this up for visibility. Cc @jldec
<div className="flex justify-end mt-6"> | ||
<button className="secondary" onClick={onClose}> | ||
Cancel | ||
</button> | ||
<button className="ml-2" onClick={onSubmit}> | ||
Send Feedback | ||
</button> | ||
</div> |
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.
<p className="text-center text-lg mb-8 text-gray-500 dark:text-gray-400"> | ||
We'd love to know what you think! | ||
<p className={"text-center text-base " + (props.isError ? "text-gray-400" : "text-gray-500")}> | ||
Thanks for your feedback, we appreciate it. |
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.
praise: Thanks for also including this step in the feedback modal used in the dashboard pages! 🙏
<p className="text-center text-lg mb-8 text-gray-500 dark:text-gray-400"> | ||
We'd love to know what you think! | ||
<p className={"text-center text-base " + (props.isError ? "text-gray-400" : "text-gray-500")}> | ||
Thanks for your feedback, we appreciate it. |
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.
suggestion: Since this PR now also includes the last step of the feedback widget, we could also align the designs to include the 🙏 emoji? You can grab the SVG from the specs included in #10124. Going with a simple inline structure sounds good. WDYT?
Closable last step | Non-closable last step |
---|---|
In case this sounds interesting to you, we could also reuse the alert component for this which now supports opting in for closable option and an icon, but let's skip this for now.
<p className="text-center text-lg mb-8 text-gray-500 dark:text-gray-400"> | ||
We'd love to know what you think! | ||
<p className={"text-center text-base " + (props.isError ? "text-gray-400" : "text-gray-500")}> | ||
Thanks for your feedback, we appreciate it. |
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.
> | ||
<p className="text-center text-lg mb-8 text-gray-500 dark:text-gray-400"> | ||
We'd love to know what you think! | ||
<p className={"text-center text-base " + (props.isError ? "text-gray-400" : "text-gray-500")}> |
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.
suggestion: In both cases, being able to dismiss the thanks message at the last step would be great to keep.
<div className="flex flex-col -mx-6 px-6 py-4 border-t border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900"> | ||
<div | ||
className={ | ||
"flex flex-col px-6 py-4 border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 " + |
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.
suggestion: Minor color background and padding fix.
"flex flex-col px-6 py-4 border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 " + | |
"flex flex-col px-4 py-4 border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-800 " + |
? "w-96 mt-6 bg-gray-100 dark:bg-gray-800 rounded-xl" | ||
: "-mx-6 border-t border-b") | ||
} | ||
> | ||
<div className="relative"> | ||
<div className="absolute flex bottom-5 right-5 -space-x-3">{emojiGroup(24)}</div> | ||
<textarea |
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.
suggestion: Some class changes to restore some color changes as I cannot add this code suggestion directly on the line.
w-full resize-none text-gray-600 dark:text-gray-300 focus:ring-0 focus:border-gray-400 dark:focus:border-gray-400 rounded-md border dark:bg-gray-800 dark:border-gray-500 border-gray-300
className={ | ||
"flex flex-col px-6 py-4 border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 " + | ||
(props.isError | ||
? "w-96 mt-6 bg-gray-100 dark:bg-gray-800 rounded-xl" |
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.
suggestion: Minor bottom margin to always have some whitespace around the modal.
? "w-96 mt-6 bg-gray-100 dark:bg-gray-800 rounded-xl" | |
? "w-96 mt-6 bg-gray-50 dark:bg-gray-800 rounded-xl mb-4" |
@@ -82,26 +123,27 @@ function FeedbackComponent(props: { onClose: () => void; onSubmit: () => void; i | |||
. | |||
</p> | |||
</div> | |||
</div> |
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.
Restoring text alignment from #10071 (comment).
Suggestion for https://github.com/gitpod-io/gitpod/pull/10071/files#diff-51811862e7996f416f9f7d73ff24341eecd96f3c083fb46d1b00b6cf94b50686R117:
text-gray-500 text-left
@gtsiolis Thanks, George! Definitely agree that we can carry over the UI feedback in a follow-up issue in case not all are tackled here. Appreciate the detailed look into the design discrepancies 🙏🏽 |
if (props.onClose) { | ||
props.onClose(); | ||
} |
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.
Can you use optional chaining here?
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.
Thanks for the review, @andrew-farries! I tried that but the linter still didn't like it 🙈
Description
Shows feedback component when there are error messages on:
Related Issue(s)
Fixes #10062
How to test
(A bit tedious to make sure to get the error message, sorry)
repo
feature that gives permission for private repos.https://laushinka-f9a883104c.preview.gitpod-dev.com/#[YOUR_PRIVATE_REPO]
Release Notes
Documentation
/werft analytics=segment|TEZnsG4QbLSxLfHfNieLYGF4cDwyFWoe