-
Notifications
You must be signed in to change notification settings - Fork 464
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
Adding advanced connection settings pane to connection dialog #17990
Conversation
<Button | ||
appearance="primary" | ||
disabled={ | ||
connectionDialogContext.state.connectionStatus === |
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.
note to self: increase the linewidth for prettier to avoid unnecessary wrapping
src/reactviews/pages/ConnectionDialog/connectionPageContainer.tsx
Outdated
Show resolved
Hide resolved
@@ -122,11 +129,11 @@ export interface FormComponentOptions { | |||
/** | |||
* Interface for a form event | |||
*/ | |||
export interface FormEvent { | |||
export interface FormEvent<T> { |
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.
Pull FormContextProps<T>
, FormEvent<T>
, and baseclass for ConnectionDialogReducers
to Form-dedicated file
@Benjin in terms of UX, I was expecting the advanced options to be an additional tab, like Connection String. From the video the UX looks good to me (I'll sync the branch and test it out). Though I'm interested if this "dialog on top of dialog within a document" pattern is what we want to follow across the product. No concerns with this for the initial check-in, but we should do a UX review prior to public preview. |
@kburtram Agreed that we should have Janki look at this before we go to public preview. I put it as a drawer in the same tab (for now) for two reasons:
|
VSIX Size Comparison
React Webview Bundle Size Comparison
|
Hi @Benjin, This looks promising, however I have some feedback:
|
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 made it through about half the code. Will take a look at the rest later today & will build/test the branch. Please work with @aasimkhan30 to get a sign-off since he is most familiar with some of the code you're updating.
}); | ||
|
||
// add missing validation functions for generated components | ||
components.get('server')!.component.validate = (value: string) => { |
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.
it seems like this validation logic could be wired up more automatically using the "required" metadata property? Since there's only a few properties I'm not sure it's worth refactoring though.
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 definitely something worth looking into as the generic form structure gets refined. It might need more prodding to correctly handle fields that are "conditionally required", like username, which is required, but only if auth is set to SqlLogin. Lemme see what I can do.
@Benjin makes sense on the design rationale. I think this UI looks good to me; it just wasn't what I was expecting. I'm interested in using these first UIs as an opportunity to establish UX patterns to copy in other features and this seems like a good 'test case.' Though I'd definitely put this feedback in the "open a follow-up task to do in a separate PR" so that we can get this core functionality into next release. |
Having a drawer over the recent connections feels a bit awkward since the recent connections already resemble a drawer. Initially, I considered using toggle buttons for the parameters and connection string, along with tabs for the basic and advanced fields. Unfortunately, fluent doesn't support this ui component |
@aasimkhan30 and I chatted offline, and I'll raise his ideas + concerns with Janki when we meet on Monday to iron out the differences between the mockups and what VSCode webviews can do. |
Screen.Recording.2024-08-23.093545.mp4