-
Notifications
You must be signed in to change notification settings - Fork 443
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
feat(ui): new create connection page #3072
Conversation
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.
The diff is incorrect, it's a brand new file
tests/setupFiles.ts
Outdated
const dateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{1,6}Z$/; | ||
const dateRegexWithTZ = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{1,6}\+\d{2}:\d{2}$/; | ||
const dateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{1,6})?Z$/; | ||
const dateRegexWithTZ = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{1,6})?\+\d{2}:\d{2}$/; |
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.
Had an issue with integrations tests, if you are very unlucky and the test is on the clock there will be no microsecond
😄 Just ran though the UI (haven't read the code yet) but wanted to say that I really like this change! |
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.
👍
@@ -1,12 +1,14 @@ | |||
import { asyncWrapper } from '../../../../utils/asyncWrapper.js'; | |||
import { requireEmptyQuery, zodErrorToHTTP } from '@nangohq/utils'; | |||
import type { PostConnectSessions, PostInternalConnectSessions } from '@nangohq/types'; | |||
import { postConnectSessions } from '../../../connect/postSessions.js'; | |||
import { bodySchema as originalBodySchema, postConnectSessions } from '../../../connect/postSessions.js'; |
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.
I'm not completely sure, but would postConnectBodySchema
be clearer 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.
looks good from a code point of view.
UX wise I find 2 things a bit confusing:
-
The Integration ID and dropdown is the first thing I see but even for me who know what it is about it is not clear why I am asked about it first and what it means. Since it is kind of optional I would put it below the
create test connection
with an explanation about what it is. Same thing aboutthe test user info
I understand it is here for educational purpose but in this context it doesn't make much sense since me, the user, is the same person selecting the integration constraint and actually logging in. I think it is more confusing than anything and I would even vote in favor of not showing this option. -
on the right part, the 3 components (docs button, outer Connect/Custom UI and the bulb/tag) all look like different clickable buttons but they all lead to the same url, the docs. I find that confusing
Putting in draft until we improve the UX |
We have revamped the revamp: removed the end user profile (it's not entirely disabled just in case we change our mind again), clarify docs cards, improved the wording |
It is definitely better. Also I feel like the dropdown and the authorize button should be next to each other or at least close. Right now drop down and authorize button are quite far away even though they are related while the 2 authorize buttons are close to each other even though they are not (
|
## Context Extracted from #3072 - Clarify our use of user's session `req.user` is painful because session can be out of date, and it's hard to add/remove fields from session. It's easier to always use `res.locals[user] that's always fresh. - Pass UUID, will be used later - Fix regex for integration tests
@bastienbeurier for the UX feedback |
Haha, @TBonnin, you're going to have to be involved in the design phase. |
No please no! 🤣 |
@TBonnin @bodinsamuel the latest design proposal: https://www.figma.com/proto/hKL3cmI9vBwDoZyRahQnsq/Connections-Tab?node-id=4702-27943&node-type=instance&viewport=-3125%2C312%2C0.41&t=b11nWvdOcBhhizyh-0&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=4702%3A27943&show-proto-sidebar=1 |
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.
🚢
😘 Changes
Fixes https://linear.app/nango/issue/NAN-2188/test-connection-ui
UI: New create connection page
The goal is to give the opportunity for customers to change theEndUser
(also education time) and display links to documentation. It's one more click but yeah.UI: Keep the legacy page to a new endpoint for a moment
UI: add new style for Button, Input, Select
https://www.figma.com/design/pMnSC7rhSM79Dqwhm7MFhd
POST /api/v1/connect/sessions
now accepts the same payload as the public oneGET /api/v1/meta
expose user UUIDNot sure what the use of id but it's handy to have static-random id for the endUser profile without exposing our auto-incremented number.unused in the end🧪 Tests