• Roman's avatar
    Mobx-6 migration (#2718) · 2c3b5109
    Roman authored
    
    
    * mobx-6 migration -- part 1
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * mobx-6 migration -- part 2 (npx mobx-undecorate --keepDecorators)
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * mobx-6 migration -- part 3 (more fixes)
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * unwrap possible observables from IPC-messaging
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * mobx-6 migration -- remove @autobind as class-decorator
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * mobx-6: replacing @autobind() as method-decorator to @boundMethod
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * mobx-6: use toJS()-wrapper since monkey-patching require(mobx).toJS doesn't work
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * removed `@observable static`
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * use {useDefineForClassFields: true} in tsconfig.json
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * remove ExtendedObservableMap
    Signed-off-by: default avatarJari Kolehmainen <jari.kolehmainen@gmail.com>
    
    * fix: removed makeObservable(this) from "terminal-tab.tsx"
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * storage-helper refactoring
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * normalize usages of #observable-value.toJSON() / attempt to catch the wind
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * refactoring, more possible branch fixes + lint
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * debugging cluster-view error -- part 1
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: refreshing cluster-view on ready
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: various app-crashes related to KubeObject.spec.* access from "undefined"
    fix: config-map-details crash
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: namespace-store refactoring / saving selected-namespaces to external json-file
    Signed-off-by: default avatarRoman <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: default avatarRoman <ixrock@gmail.com>
    
    * fix: app-crash on editing k8s resource
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: restore "all namespaces" on page reload
    Signed-off-by: default avatarRoman <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: default avatarRoman <ixrock@gmail.com>
    
    * fix: crd definition details -> crashing with <AceEditor mode="json"> (added missing mode-file in ace-editor.tsx)
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: crd definitions -> groups selector couldn't deselect last selected option
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * refactoring: extensions-api exports clarification for "@k8slens/extensions"
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: various app-crashes related to kube-events (events page, some details page, overview, etc.)
    Signed-off-by: default avatarRoman <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: default avatarRoman <ixrock@gmail.com>
    
    * master-merge lint-fixes
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * catalog.tsx / catalog-entities.store.ts refactoring & fixes
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: Catalog -> Browse all tab
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: CommandPalette doesn't appear from global menu by click/hotkey
    Signed-off-by: default avatarRoman <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: default avatarRoman <ixrock@gmail.com>
    
    * update KubeObject class type definition
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * clean up / responding to comments
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: app-crash when navigating to catalog from active cluster-view, refactoring `catalog-entity-store`
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * catalog-pusher clean up, replaced .observe_() to external observe() helper from "mobx"
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: catalog's items stale/non-observable (after connection to the cluster status still "disconnected"), lint-fixes
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: Catalog is empty after closing main-window and re-opening app from Tray
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: HotBar's icon context menu items non-observable (no "disconnect cluster", etc.)
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * lint-fix/license check
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: redirect to catalog when disconnecting active cluster
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: refresh visibility of active cluster-view on switching from hotbar/catalog
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * updated package.json for built-in extensions to use "*" version for packages served from main app
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * - added missing makeObservable(this) to metrics-settings.tsx
    - updated package-lock.json for built-in extensions
    - lint fixes
    Signed-off-by: default avatarRoman <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: default avatarRoman <ixrock@gmail.com>
    
    * fix unit-tests
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * master-merge fixes
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * make lint happy
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * reverted some changes, removed auto-opening devtools in dev-mode
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * merge fixes
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * master-merge conflict fixes:
    - proper handling and navigating into catalog's active category via URL-builder
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * reverting splitted params for catalog's page route to "/catalog/:group?/:kind?"
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * clean-up: remove app's injecting dependencies from `extensions/kube-object-event-status/package.json`
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * master-merge fix: added missing makeObservable(this) for extensions.tsx
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    
    * fix: catalog entity context menu stale/unobservable
    Signed-off-by: default avatarRoman <ixrock@gmail.com>
    Co-authored-by: default avatarJari Kolehmainen <jari.kolehmainen@gmail.com>
    2c3b5109