* mobx-6 migration -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- part 2 (npx mobx-undecorate --keepDecorators)
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- part 3 (more fixes)
Signed-off-by: Roman <ixrock@gmail.com>
* unwrap possible observables from IPC-messaging
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6 migration -- remove @autobind as class-decorator
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6: replacing @autobind() as method-decorator to @boundMethod
Signed-off-by: Roman <ixrock@gmail.com>
* mobx-6: use toJS()-wrapper since monkey-patching require(mobx).toJS doesn't work
Signed-off-by: Roman <ixrock@gmail.com>
* removed `@observable static`
Signed-off-by: Roman <ixrock@gmail.com>
* use {useDefineForClassFields: true} in tsconfig.json
Signed-off-by: Roman <ixrock@gmail.com>
* remove ExtendedObservableMap
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix: removed makeObservable(this) from "terminal-tab.tsx"
Signed-off-by: Roman <ixrock@gmail.com>
* storage-helper refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* normalize usages of #observable-value.toJSON() / attempt to catch the wind
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring, more possible branch fixes + lint
Signed-off-by: Roman <ixrock@gmail.com>
* debugging cluster-view error -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refreshing cluster-view on ready
Signed-off-by: Roman <ixrock@gmail.com>
* fix: various app-crashes related to KubeObject.spec.* access from "undefined"
fix: config-map-details crash
Signed-off-by: Roman <ixrock@gmail.com>
* fix: namespace-store refactoring / saving selected-namespaces to external json-file
Signed-off-by: Roman <ixrock@gmail.com>
* fix: don't cache mobx.when(() => this.someObservable) cause might not work as expected due later call of makeObservable(this) in constructor
Signed-off-by: Roman <ixrock@gmail.com>
* fix: app-crash on editing k8s resource
Signed-off-by: Roman <ixrock@gmail.com>
* fix: restore "all namespaces" on page reload
Signed-off-by: Roman <ixrock@gmail.com>
* - fix: persist table-sort params and cluster-view's sidebar state to lens-local-storage
- new-feature: auto-open main-window's devtools in development-mode (yes/no/ugly?)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: crd definition details -> crashing with <AceEditor mode="json"> (added missing mode-file in ace-editor.tsx)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: crd definitions -> groups selector couldn't deselect last selected option
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring: extensions-api exports clarification for "@k8slens/extensions"
Signed-off-by: Roman <ixrock@gmail.com>
* fix: various app-crashes related to kube-events (events page, some details page, overview, etc.)
Signed-off-by: Roman <ixrock@gmail.com>
* Reverted "use {useDefineForClassFields: true} in tsconfig.json" (various app-crash fixes)
This flag seems to be not possible to use with class-inheritance in some cases.
Example / demo:
`KubeObject` class has initial type definitions for the fields like: "metadata", "kind", etc.
and constructor() has Object.assign(this, data);
Meanwhile child class, e.g. KubeEvent inherited from KubeObject and has it's own extra type definitions for underlying resource, e.g. "involvedObject", "source", etc.
So calling super(data) doesn't work as expected for child class as it's own type definitions overwrites data from parent's constructor with `undefined` at later point.
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge lint-fixes
Signed-off-by: Roman <ixrock@gmail.com>
* catalog.tsx / catalog-entities.store.ts refactoring & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix: Catalog -> Browse all tab
Signed-off-by: Roman <ixrock@gmail.com>
* fix: CommandPalette doesn't appear from global menu by click/hotkey
Signed-off-by: Roman <ixrock@gmail.com>
* - Merging interfaces & classses to avoid overwriting fields from parent's super(data)-call with Object.assign(this, data). Otherwise use "declare" keyword at class field definition.
- Revamping {useDefineForClassFields: true} to avoid issues with non-observable class fields in some cases (from previous commit):
```
@observer
export class CommandContainer extends React.Component<CommandContainerProps> {
// without some defined initial value "commandComponent" is non-observable for some reasons
// when tsconfig.ts has {useDefineForClassFields:false}
@observable.ref commandComponent: React.ReactNode = null;
constructor(props: CommandContainerProps) {
super(props);
makeObservable(this);
}
```
Signed-off-by: Roman <ixrock@gmail.com>
* update KubeObject class type definition
Signed-off-by: Roman <ixrock@gmail.com>
* clean up / responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix: app-crash when navigating to catalog from active cluster-view, refactoring `catalog-entity-store`
Signed-off-by: Roman <ixrock@gmail.com>
* catalog-pusher clean up, replaced .observe_() to external observe() helper from "mobx"
Signed-off-by: Roman <ixrock@gmail.com>
* fix: catalog's items stale/non-observable (after connection to the cluster status still "disconnected"), lint-fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix: Catalog is empty after closing main-window and re-opening app from Tray
Signed-off-by: Roman <ixrock@gmail.com>
* fix: HotBar's icon context menu items non-observable (no "disconnect cluster", etc.)
Signed-off-by: Roman <ixrock@gmail.com>
* lint-fix/license check
Signed-off-by: Roman <ixrock@gmail.com>
* fix: redirect to catalog when disconnecting active cluster
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refresh visibility of active cluster-view on switching from hotbar/catalog
Signed-off-by: Roman <ixrock@gmail.com>
* updated package.json for built-in extensions to use "*" version for packages served from main app
Signed-off-by: Roman <ixrock@gmail.com>
* - added missing makeObservable(this) to metrics-settings.tsx
- updated package-lock.json for built-in extensions
- lint fixes
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge clean up fix, updated package-lock.json for built-in extensions after `make clean-extensions && make build-extensions`
Signed-off-by: Roman <ixrock@gmail.com>
* fix unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge fixes
Signed-off-by: Roman <ixrock@gmail.com>
* make lint happy
Signed-off-by: Roman <ixrock@gmail.com>
* reverted some changes, removed auto-opening devtools in dev-mode
Signed-off-by: Roman <ixrock@gmail.com>
* merge fixes
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge conflict fixes:
- proper handling and navigating into catalog's active category via URL-builder
Signed-off-by: Roman <ixrock@gmail.com>
* reverting splitted params for catalog's page route to "/catalog/:group?/:kind?"
Signed-off-by: Roman <ixrock@gmail.com>
* clean-up: remove app's injecting dependencies from `extensions/kube-object-event-status/package.json`
Signed-off-by: Roman <ixrock@gmail.com>
* master-merge fix: added missing makeObservable(this) for extensions.tsx
Signed-off-by: Roman <ixrock@gmail.com>
* fix: catalog entity context menu stale/unobservable
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Setting up tailwind and css modules env
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using tailwind with scss files also
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Introducing react-table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Spread extensions to smaller components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Add table sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing inputs line-height
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning page view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Align table rows
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding extension notice
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning overall styling
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding a extensions placeholder
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating MaterialIcons font
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Aligning not found state
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Making extension components observable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing search input cross icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix drag-n-drop indication
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing extension name sorting
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix linter
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Ignoring ts files to tailwind purge
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Renaming Table -> ReactTable
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing integration tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving tailwind imports into app.scss
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving userExtensionList() out from extension-loader
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Transform extension list to array
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Expand install input placeholder a bit
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* check source files for license header
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add license header to all relevant source files
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
- Add distinction between `getInstance` and `getInstanceOrCreate` since
it is not always possible to create an instance (since you might not
know the correct arguments)
- Remove all the `export const *Store = *Store.getInstance<*Store>();`
calls as it defeats the purpose of `Singleton`. Plus with the typing
changes the appropriate `*Store.getInstance()` is "short enough".
- Special case the two extension export facades to not need to use
`getInstanceOrCreate`. Plus since they are just facades it is always
possible to create them.
- Move some other types to be also `Singleton`'s: ExtensionLoader,
ExtensionDiscovery, ThemeStore, LocalizationStore, ...
- Fixed dev-run always using the same port with electron inspect
- Update Store documentation with new recommendations about creating
instances of singletons
- Fix all unit tests to create their dependent singletons
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Wrap app into emotion CacheProvider to isolate styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix CacheProvider key
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving CacheProvider into more specific components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Align @emotion/react & @emotion/cache version with ones inside react-select
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Covering more components with CacheProvider
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Changing emotion versions a bit more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving CacheProvider into bootstrap
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating react-select types
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* A bit of cleaning up types
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Specifying types a bit more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix gradients in namespace selector
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Importing types separately
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using generic NonceProvider in bootstrap
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Making "since" date visible as bolded text
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing colors in log tab elements
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* add no-unused-vars and no-unused-imports
* added quotes: double, and remove ignore pattern
* move itif and describeif into utils
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Setting global webkit-scrollbar styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing usage of custom-scrollbar mixin
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Set overflow:auto on .Table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing .drawer-content paddings
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing typo
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fine-tuning select to show long items
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Allow user to select Kubeconfig from filesystem, fix#738
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding cluster menu colors
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding theme class name flag into #app
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up mixins
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Tuning up Wizard Layout styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using theme-light global flag
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor style fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using .theme-light flag across components
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Set theme as @computed value
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Preventing Drawer slide-in scroll flickering
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting background for settings views
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Minor layout fixes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Switching AceEditor theme reactively
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>