-
Couldn't load subscription status.
- Fork 3
Feat: Complete Kubectl Dialog Across Project,Workspace,Delete #15
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
Changes from 8 commits
d0fffe5
b72dbf4
b44f4e2
73fe44d
e548ffe
24f0413
38de779
b0c7deb
bce63fe
ddb62dd
95a1e11
a37d028
c1c13e4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,13 +12,17 @@ import { | |
| import { Member } from '../../lib/api/types/shared/members'; | ||
| import { ErrorDialog, ErrorDialogHandle } from '../Shared/ErrorMessageBox.tsx'; | ||
|
|
||
| import { FormEvent } from 'react'; | ||
| import { KubectlInfoButton } from './KubectlCommandInfo/KubectlInfoButton.tsx'; | ||
| import { KubectlWorkspaceDialog } from './KubectlCommandInfo/KubectlCreateWorkspaceDialog.tsx'; | ||
| import { KubectlProjectDialog } from './KubectlCommandInfo/KubectlCreateProjectDialog.tsx'; | ||
|
|
||
| import { EditMembers } from '../Members/EditMembers.tsx'; | ||
| import ButtonDesign from '@ui5/webcomponents/dist/types/ButtonDesign.js'; | ||
| import { useFrontendConfig } from '../../context/FrontendConfigContext.tsx'; | ||
| // import { useFrontendConfig } from '../../context/FrontendConfigContext.tsx'; | ||
| import { useTranslation } from 'react-i18next'; | ||
| import { useDialog } from './UseDialog.tsx'; | ||
|
|
||
| import { CreateDialogProps } from './CreateWorkspaceDialogContainer.tsx'; | ||
| import { FormEvent } from 'react'; | ||
| import { FieldErrors, UseFormRegister, UseFormSetValue } from 'react-hook-form'; | ||
|
|
||
| export type OnCreatePayload = { | ||
|
|
@@ -38,6 +42,7 @@ export interface CreateProjectWorkspaceDialogProps { | |
| register: UseFormRegister<CreateDialogProps>; | ||
| errors: FieldErrors<CreateDialogProps>; | ||
| setValue: UseFormSetValue<CreateDialogProps>; | ||
| projectName?: string; | ||
| } | ||
|
|
||
| export function CreateProjectWorkspaceDialog({ | ||
|
|
@@ -50,10 +55,11 @@ export function CreateProjectWorkspaceDialog({ | |
| register, | ||
| errors, | ||
| setValue, | ||
| projectName, | ||
| }: CreateProjectWorkspaceDialogProps) { | ||
| const { links } = useFrontendConfig(); | ||
| // const { links } = useFrontendConfig(); | ||
| const { t } = useTranslation(); | ||
|
|
||
| const kubectlDialog = useDialog(); | ||
| return ( | ||
| <> | ||
| <Dialog | ||
|
|
@@ -65,24 +71,18 @@ export function CreateProjectWorkspaceDialog({ | |
| <Bar | ||
| design="Footer" | ||
| endContent={ | ||
| <> | ||
| <Button | ||
| design={ButtonDesign.Transparent} | ||
| icon="sap-icon://question-mark" | ||
| onClick={() => { | ||
| window.open(links.COM_PAGE_GETTING_STARTED, '_blank'); | ||
| }} | ||
| > | ||
| {t('CreateProjectWorkspaceDialog.learnButton')} | ||
| </Button> | ||
| <div | ||
| style={{ display: 'flex', alignItems: 'center', gap: '8px' }} | ||
| > | ||
| <KubectlInfoButton onClick={kubectlDialog.open} /> | ||
| <Button onClick={() => setIsOpen(false)}> | ||
| {' '} | ||
| {t('CreateProjectWorkspaceDialog.cancelButton')} | ||
| </Button> | ||
| <Button design="Emphasized" onClick={() => onCreate()}> | ||
| {t('CreateProjectWorkspaceDialog.createButton')} | ||
| </Button> | ||
| </> | ||
| </div> | ||
| } | ||
| /> | ||
| } | ||
|
|
@@ -95,6 +95,15 @@ export function CreateProjectWorkspaceDialog({ | |
| setValue={setValue} | ||
| /> | ||
| </Dialog> | ||
| <KubectlWorkspaceDialog | ||
| project={projectName} | ||
| isOpen={kubectlDialog.isOpen && !!projectName} | ||
| onClose={kubectlDialog.close} | ||
| /> | ||
| <KubectlProjectDialog | ||
| isOpen={kubectlDialog.isOpen && !projectName} | ||
| onClose={kubectlDialog.close} | ||
| /> | ||
|
||
| <ErrorDialog ref={errorDialogRef} /> | ||
| </> | ||
| ); | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,30 @@ | ||||||
| import { DeleteMcpDialog } from '../KubectlDeleteMcpDialog'; | ||||||
| import { KubectlInfoButton } from '../KubectlInfoButton'; | ||||||
| import { useDialog } from '../../UseDialog'; | ||||||
|
|
||||||
| interface KubectlDeleteMcpProps { | ||||||
| projectName?: string; | ||||||
|
||||||
| projectName?: string; | |
| projectName: string; |
(also adjust ? further down the line)
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| import { DeleteWorkspaceDialog } from '../KubectlDeleteWorkspaceDialog'; | ||
| import { KubectlInfoButton } from '../KubectlInfoButton'; | ||
| import { useDialog } from '../../UseDialog'; | ||
|
|
||
| interface KubectlDeleteWorkspaceProps { | ||
| projectName?: string; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also here: Can’t we just assume that there’s always a |
||
| resourceName: string; | ||
| } | ||
|
|
||
| export const KubectlDeleteWorkspace = ({ | ||
| projectName, | ||
| resourceName, | ||
| }: KubectlDeleteWorkspaceProps) => { | ||
| const infoDialog = useDialog(); | ||
|
|
||
| return ( | ||
| <> | ||
| <KubectlInfoButton onClick={infoDialog.open} /> | ||
| <DeleteWorkspaceDialog | ||
| projectName={projectName} | ||
| resourceName={resourceName} | ||
| isOpen={infoDialog.isOpen} | ||
| onClose={infoDialog.close} | ||
| /> | ||
| </> | ||
| ); | ||
| }; | ||
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.
Delete unused code
(Also further down)