-
Notifications
You must be signed in to change notification settings - Fork 16
Add CLI command button to settings group #2046
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
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
app/ui/lib/SettingsGroup.tsx
Outdated
| ctaText, | ||
| secondaryCta, | ||
| secondaryCtaText, | ||
| }: Props) => { |
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 thinking this is an excessive level of abstraction for something that's used in one place. I think I can break this up into a few reusable containers and cut this down a lot.
c45267e to
18b4e32
Compare
18b4e32 to
79846d4
Compare
| Connect to your instance’s serial console | ||
| </SettingsGroup.Body> | ||
| <SettingsGroup.Footer> | ||
| <EquivalentCliCommand command={cliCmd.serialConsole({ project, instance })} /> |
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.
with the refactors separated out, this PR would only have required adding this one line
|
In general I don't like the big props API approach in order to avoid mistakes at the call site. It eliminates some categories of mistake, but at great expense in terms of flexibility and you can still make all kinds of other mistakes. |
oxidecomputer/console@784e8aa...7c96844 * [7c968443](oxidecomputer/console@7c968443) oxidecomputer/console#2083 * [b844a42c](oxidecomputer/console@b844a42c) oxidecomputer/console#2078 * [47835ee3](oxidecomputer/console@47835ee3) oxidecomputer/console#2086 * [c4ddebc2](oxidecomputer/console@c4ddebc2) oxidecomputer/console#2082 * [530a0997](oxidecomputer/console@530a0997) upload-artifact@v4 requires unique filenames for each run in matrix * [b996c34c](oxidecomputer/console@b996c34c) bump actions/upload-artifact to v4 * [bc51f530](oxidecomputer/console@bc51f530) bump API to latest main * [743da3b0](oxidecomputer/console@743da3b0) oxidecomputer/console#2080 * [7596d633](oxidecomputer/console@7596d633) oxidecomputer/console#2073 * [65531bff](oxidecomputer/console@65531bff) oxidecomputer/console#2074 * [4d226cd3](oxidecomputer/console@4d226cd3) oxidecomputer/console#1891 * [7490104a](oxidecomputer/console@7490104a) update readme with cool new preview URL * [a2218994](oxidecomputer/console@a2218994) oxidecomputer/console#2066 * [641ebe85](oxidecomputer/console@641ebe85) oxidecomputer/console#2061 * [1bb8dd3a](oxidecomputer/console@1bb8dd3a) oxidecomputer/console#2055 * [41dd9f06](oxidecomputer/console@41dd9f06) oxidecomputer/console#2059 * [04692802](oxidecomputer/console@04692802) oxidecomputer/console#2048 * [8c30305e](oxidecomputer/console@8c30305e) oxidecomputer/console#2050 * [53709d2a](oxidecomputer/console@53709d2a) oxidecomputer/console#2046 * [84caede7](oxidecomputer/console@84caede7) oxidecomputer/console#2026 * [bca9f42a](oxidecomputer/console@bca9f42a) oxidecomputer/console#2045 * [09e5f713](oxidecomputer/console@09e5f713) oxidecomputer/console#2043 * [d780e5d8](oxidecomputer/console@d780e5d8) fix casing on floating IP attach/detach toasts
oxidecomputer/console@784e8aa...7c96844 * [7c968443](oxidecomputer/console@7c968443) oxidecomputer/console#2083 * [b844a42c](oxidecomputer/console@b844a42c) oxidecomputer/console#2078 * [47835ee3](oxidecomputer/console@47835ee3) oxidecomputer/console#2086 * [c4ddebc2](oxidecomputer/console@c4ddebc2) oxidecomputer/console#2082 * [530a0997](oxidecomputer/console@530a0997) upload-artifact@v4 requires unique filenames for each run in matrix * [b996c34c](oxidecomputer/console@b996c34c) bump actions/upload-artifact to v4 * [bc51f530](oxidecomputer/console@bc51f530) bump API to latest main * [743da3b0](oxidecomputer/console@743da3b0) oxidecomputer/console#2080 * [7596d633](oxidecomputer/console@7596d633) oxidecomputer/console#2073 * [65531bff](oxidecomputer/console@65531bff) oxidecomputer/console#2074 * [4d226cd3](oxidecomputer/console@4d226cd3) oxidecomputer/console#1891 * [7490104a](oxidecomputer/console@7490104a) update readme with cool new preview URL * [a2218994](oxidecomputer/console@a2218994) oxidecomputer/console#2066 * [641ebe85](oxidecomputer/console@641ebe85) oxidecomputer/console#2061 * [1bb8dd3a](oxidecomputer/console@1bb8dd3a) oxidecomputer/console#2055 * [41dd9f06](oxidecomputer/console@41dd9f06) oxidecomputer/console#2059 * [04692802](oxidecomputer/console@04692802) oxidecomputer/console#2048 * [8c30305e](oxidecomputer/console@8c30305e) oxidecomputer/console#2050 * [53709d2a](oxidecomputer/console@53709d2a) oxidecomputer/console#2046 * [84caede7](oxidecomputer/console@84caede7) oxidecomputer/console#2026 * [bca9f42a](oxidecomputer/console@bca9f42a) oxidecomputer/console#2045 * [09e5f713](oxidecomputer/console@09e5f713) oxidecomputer/console#2043 * [d780e5d8](oxidecomputer/console@d780e5d8) fix casing on floating IP attach/detach toasts
Fixes #1991
I initially tried changing
ctato take a react component, that way I could just pass the<EquivalentCliCommand />component together with the "Connect" button. But I think the issue with that approach is it's very easy to pass the wrong button style or size.Instead I broke the modal into its own compound that way I could pass a
secondaryCtaprop and just call it directly from that.