Repository navigation
Improve extensions catalog - Organize data into a table #931
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
Merged
gabriela-almeida-ctw
merged 25 commits into
develop
from
feature/improve-extensions-catalog
Feb 23, 2026
Merged
Changes from 22 commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
46164e5
Test data with DataGrid OK
gabriela-almeida-ctw bf3eefa
Add logic to handle install/uninstall extension
gabriela-almeida-ctw 72d5149
Add logic to handle install/uninstall multiple extensions
gabriela-almeida-ctw 9ba1857
Remove bulk install (intentionally)
gabriela-almeida-ctw d610f06
Adjust column sizes
gabriela-almeida-ctw 300ecc6
Relocate consts types and styles
gabriela-almeida-ctw 2ed77aa
Extract common extensions operations into a hook - install uninstall …
gabriela-almeida-ctw 23e180b
Extract button logic into new components
gabriela-almeida-ctw f914813
Remove unused component
gabriela-almeida-ctw 82c848f
fix dependency
rodrigo-p-rodrigues 75e101e
rename file
rodrigo-p-rodrigues 89ce953
fix unit tests
rodrigo-p-rodrigues babfaa3
test push
rodrigo-p-rodrigues 1e1e1c8
remove unnecessary comment
rodrigo-p-rodrigues db8c415
remove deprecated property
rodrigo-p-rodrigues 3b76b26
add unit tests to handleBulkUninstall
rodrigo-p-rodrigues de5574e
Make row size fixed for bulk action button
gabriela-almeida-ctw 7f95402
Apply PR suggestion - stable scrollbar gutter
gabriela-almeida-ctw 54a97e4
Apply PR suggestion - extract button actions to a shared component
gabriela-almeida-ctw 661f80a
Apply PR suggestion - remove inline styling to allow columns resize
gabriela-almeida-ctw b3d33c9
Apply PR suggestion - hide actions from marketplace extensions
gabriela-almeida-ctw 50c894f
Merge remote-tracking branch 'origin/develop' into feature/improve-ex…
gabriela-almeida-ctw 6e00d09
Apply PR suggestion - use ExtensionBuilder
gabriela-almeida-ctw b7bfd48
Merge remote-tracking branch 'origin/develop' into feature/improve-ex…
gabriela-almeida-ctw 6e02b84
Correct lint
gabriela-almeida-ctw File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
.../components/ExtensionsSettings/components/ExtensionActionButton/ExtensionActionButton.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| // SPDX-FileCopyrightText: Copyright (C) 2023-2026 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)<lichtblick@bmwgroup.com> | ||
| // SPDX-License-Identifier: MPL-2.0 | ||
|
|
||
| import { Button } from "@mui/material"; | ||
|
|
||
| import { ExtensionActionButtonProps } from "@lichtblick/suite-base/components/ExtensionsSettings/types"; | ||
| import { OperationStatus } from "@lichtblick/suite-base/components/types"; | ||
|
|
||
| /** | ||
| * Action button component for extensions. | ||
| * Only renders if the extension can be installed (has a foxe URL). | ||
| */ | ||
| export function ExtensionActionButton({ | ||
| extension, | ||
| onAction, | ||
| isOperating, | ||
| operationStatus, | ||
| className, | ||
| stopPropagation = false, | ||
| color = "primary", | ||
| variant = "contained", | ||
| label, | ||
| loadingLabel, | ||
| }: Readonly<ExtensionActionButtonProps>): React.ReactElement | undefined { | ||
| return ( | ||
| <Button | ||
| className={className} | ||
| size="small" | ||
| color={color} | ||
| variant={variant} | ||
| onClick={async (event) => { | ||
| if (stopPropagation) { | ||
| event.stopPropagation(); | ||
| } | ||
| await onAction(extension); | ||
| }} | ||
| disabled={isOperating} | ||
| > | ||
| {isOperating && operationStatus !== OperationStatus.IDLE ? loadingLabel : label} | ||
| </Button> | ||
| ); | ||
| } |
21 changes: 21 additions & 0 deletions
21
...base/src/components/ExtensionsSettings/components/ExtensionActionButton/InstallButton.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| // SPDX-FileCopyrightText: Copyright (C) 2023-2026 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)<lichtblick@bmwgroup.com> | ||
| // SPDX-License-Identifier: MPL-2.0 | ||
|
|
||
| import { ExtensionActionButton } from "@lichtblick/suite-base/components/ExtensionsSettings/components/ExtensionActionButton/ExtensionActionButton"; | ||
| import { ExtensionActionButtonProps } from "@lichtblick/suite-base/components/ExtensionsSettings/types"; | ||
| import { ExtensionMarketplaceDetail } from "@lichtblick/suite-base/context/ExtensionMarketplaceContext"; | ||
| import { canInstallExtension } from "@lichtblick/suite-base/util/canInstallExtension"; | ||
|
|
||
| /** | ||
| * Install button component for extensions. | ||
| * Only renders if the extension can be installed (has a foxe URL). | ||
| */ | ||
| export function InstallButton( | ||
| props: Readonly<ExtensionActionButtonProps>, | ||
| ): React.ReactElement | undefined { | ||
| if (!canInstallExtension(props.extension as ExtensionMarketplaceDetail)) { | ||
| return undefined; | ||
| } | ||
|
|
||
| return <ExtensionActionButton {...props} />; | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.