* 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>
* Add configuration for debugging integration tests
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Add launch configuration for debugging main process
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Continue polishing debug configurations
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Remove unnecessary dependency
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Add debug configuration for unit tests + cleanup vscode tasks
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Update src/renderer/bootstrap.tsx
Add `await` keyword to debugger attachment
Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Update src/renderer/bootstrap.tsx
Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Use existing variable to wait for chrome debugger attachment
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Update src/renderer/bootstrap.tsx
Use available helper function instead of raw promise
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Import delay utility
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
* Move async function to async context (attaching debugger)
Signed-off-by: Alex Culliere <alozhkin@mirantis.com>
Co-authored-by: Alex Culliere <alozhkin@mirantis.com>
Co-authored-by: chh <1474479+chenhunghan@users.noreply.github.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
- Add lens:// protocol handling with a routing mechanism
- document the methods in an extension guide
- remove handlers when an extension is deactivated or removed
- make sure that the found extension when routing a request is currently enabled (as a backup)
- added documentation about the above behaviour to the guide
- tweaked the naming convention so that it is clearer that the router uses extension names as not IDs (which currently are folder paths)
- Convert the extension API to use an array for registering handlers
- switch design to execute both main and renderer handlers simultaneously, without any overlap checking
- change open to be a dev dep
- improve docs, export types for extensions, skip integration tests
- switch to event emitting renderer being ready
- Add logging and fix renderer:loaded send to main
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint, micro-refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* more refactoring, clean up, responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
* fix: remove extra check for cluster.allowedApi from processing buffered watch-api events
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring, detaching NamespaceStore from KubeObjectStore
Signed-off-by: Roman <ixrock@gmail.com>
* fix: wait for contextReady in NamespaceStore
Signed-off-by: Roman <ixrock@gmail.com>
* refactoring & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint
Signed-off-by: Roman <ixrock@gmail.com>
* fixes: reloading context stores on NamespaceSelect-change
Signed-off-by: Roman <ixrock@gmail.com>
* optimize loading all resources when "all namespaces" selected -> single request per resource (when have rights)
Signed-off-by: Roman <ixrock@gmail.com>
* use native k8s api watches
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* retry watch when it makes sense
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* workaround for browser connection limits
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* use always random subdomain for getResponse
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* resubscribe stores on contextNamespace change
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* modify watch event before calling callback
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Roman <ixrock@gmail.com>
* Initial in-app survey implementation
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add surveyId fetching and store integration
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Add empty line
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Fix typos
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Use async version of machineId + refactoring
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update preferences hint text
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* wip: command palette
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* register shortcut to global menu
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* introduce openCommandDialog & closeCommandDialog
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix ipc broadcast to frames from renderer
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add more commands
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add integration tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* implement workspace edit
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* workspace edit fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* make tests green
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fixes from code review
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup ipc
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup CommandRegistry
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ipc fix
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fix ClusterManager cluster auto-init
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* ensure cluster view is active before sending a command
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* switch to last active cluster when workspace change
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* tweak integration tests
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* run integration tests serially
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* fixes based on code review
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup more
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* add workspace fixes
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* cleanup
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Adding LogTabStore
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding Pod selector in logs tab
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refresh containers on pod change
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding <LogResourceSelector /> tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding LogTabStore tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Clearn getPodsByOwnerId method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Extracting dummy pods into mock file
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Eliminating containers and initContainers from store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refreshing tab pods if pod amount is changed in store
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* A bit of cleaning up, fixing tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix lint newline errors
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Return getPodsByOwner() method
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Rename log tab when pod changes
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding context menu to dock tabs
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Allowing to open menu by contextmenu event
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding DockTab tests with fine-tuning jest config
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding disable state to menu items
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing empty lines
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving jest-canvas-mock to dev dependencies
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* optimise Cluster.getAllowedResources()
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* make it faster (max 5 concurrent requests)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Types for Select and Slider components are not fully exported, fix#1824
Signed-off-by: Roman <ixrock@gmail.com>
* remove unused @types/material-ui package
Signed-off-by: Roman <ixrock@gmail.com>
* add step to verify docs on area/documentation PRs
* use GH actions to run the verification
* add check if label is set to area/documentation
* fix broken links in docs with WIP files
* add generating API docs before verifying
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* 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>
* Use webpack instead of tsc to output extension-api.ts
* Move tsconfig.extension.json into ts-loader's compilerOptions
Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
* Option to install an extension from filesystem/url #1227 -- part 1 (UI)
Signed-off-by: Roman <ixrock@gmail.com>
* DropFileInput: common component to handle droped files (replaced also in add-cluster-page)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: install via url-string on input.submit
Signed-off-by: Roman <ixrock@gmail.com>
* ui tweaks & minor fixes
Signed-off-by: Roman <ixrock@gmail.com>
* more ui/ux tweaks & fixes
Signed-off-by: Roman <ixrock@gmail.com>
* layout fixes
Signed-off-by: Roman <ixrock@gmail.com>
* component renaming: `copy-to-click` => `copy-to-clipboard` => `clipboard`
Signed-off-by: Roman <ixrock@gmail.com>
* reworks -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* fix downloading file, added common/utils/downloadFile
Signed-off-by: Roman <ixrock@gmail.com>
* confirm before install, unpack tar first steps
Signed-off-by: Roman <ixrock@gmail.com>
* installation flow, extracting .tgz
Signed-off-by: Roman <ixrock@gmail.com>
* clean up, fix lint issues
Signed-off-by: Roman <ixrock@gmail.com>
* update .azure-pipelines.yml
Signed-off-by: Roman <ixrock@gmail.com>
* fixes & refactoring
Signed-off-by: Roman <ixrock@gmail.com>
* fix lint harder :/
Signed-off-by: Roman <ixrock@gmail.com>
* fix validation
Signed-off-by: Roman <ixrock@gmail.com>
* fix validation harder
Signed-off-by: Roman <ixrock@gmail.com>
* responding to comments, fixed package validation
Signed-off-by: Roman <ixrock@gmail.com>
* common/utils/tar.ts: reject with Error-type
Signed-off-by: Roman <ixrock@gmail.com>
* fix: unit-tests
Signed-off-by: Roman <ixrock@gmail.com>
* add retry cap to handleStaticFile to prevent an infitite loop
* 'yarn -> yarn run' for node_module dependencies
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove Makefile from all intree extensions
- Makefiles are not really common (rightly so) in JS projects and script
entries in the package.json are good enough and what they're there
for.
- Move to using yarn for installing dependencies and running scripts as
that is what we mostly use for the rest of the project.
- Move from using make syntax to a dedicated script for building and
testing extensions.
- add jest as extension devDep, go back to using makefile foreach syntax
- add correct exit code
- add yarn check call to install-deps
- add yarn invokation to find deps
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add webpack-dev-server (for hot module replacement) to serve statics, add HardSourceWebpackPlugin to improve re-compiling speed
* Serve statics using webpack-dev-server instead of lens-proxy, redirect request of Lens.html/Lens.js to webpack-dev-server
* Add react-refresh-webpack-plugin and its dep for hot-reload
* Add hot-reload plugin, and make proxy redirects requests to webpackdevserver
* Add hard-source webpack plugin to main process
* Remove parameter 'path' of handleStaticFile
* Upgarde webpack to v4 latest stable
* Fix build error: plugins shouldnt be null
Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
Co-authored-by: Steve Richards <srichards@mirantis.com>
Co-authored-by: Mario Sarcher <msarcher@mirantis.com>
Co-authored-by: steve richards <steve.james.richards@gmail.com>
Co-authored-by: Paul Williams <pawilliams@mirantis.com>
Co-authored-by: pauljwil <pauljwil@gmail.com>
* Add @testing-library/jest-dom and @testing-library/react for writing test cases
* Make eslint check __mocks__/*.ts files
* Mock electron.ipcRenderer.on to prevent errors in React compoment test cases
* Mock <Trans /> from @lingui/macro as a component simplely returns children components
* Use optional chaining operator (?.) to avoid TypeError: Cannot read property 'replicas' of undefined
* Add jest-fetch-mock for mocking global.fetch, activate for all test cases in jest.setup.ts
* Add basic tests for <DeploymentScaleDialog /> to ensure it initialises/renders without errors
* Add +/- button for changing desired replicas, and its test cases
* Adjust the styles of +/- buttons container to make sure it aligns with the slider
* Refactor after rebase from master
* Use var defined in vars.scss
* Add flex align-center to slider-container and remove margin-top: -4px
* Use <Icon /> to replace <i/>
* Add flex gaps to plus-minus-container
Signed-off-by: Hung-Han (Henry) Chen <1474479+chenhunghan@users.noreply.github.com>
* License menu item should come from an extension #1141
Signed-off-by: Roman <ixrock@gmail.com>
* fix: expose `Util.openExternal` via extensions-api
Signed-off-by: Roman <ixrock@gmail.com>
* move LICENSE back to root
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 1
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 2
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 3
Signed-off-by: Roman <ixrock@gmail.com>
* Tray icon #833 -- part 4
Signed-off-by: Roman <ixrock@gmail.com>
* fix: lint / linux build failed
Signed-off-by: Roman <ixrock@gmail.com>
* allow to disable tray from preferences
Signed-off-by: Roman <ixrock@gmail.com>
* allow to tweak svg-icon before applying as tray-icon
Signed-off-by: Roman <ixrock@gmail.com>
* add checkbox indication, setActive workspace on cluster select
Signed-off-by: Roman <ixrock@gmail.com>
* fix build version (cannon find module 'react')
Signed-off-by: Roman <ixrock@gmail.com>
* - switching dark/light icon depending on os-x theme settings
- optimization: don't re-create tray icon on menu udpates (avoid blinking)
Signed-off-by: Roman <ixrock@gmail.com>
* fix: refresh icon after turning on/off + switching dark-mode
Signed-off-by: Roman <ixrock@gmail.com>
* allow to close main window and re-open from dock or tray icon
Signed-off-by: Roman <ixrock@gmail.com>
* small fix
Signed-off-by: Roman <ixrock@gmail.com>
* fix: ensure main-window from global menu
Signed-off-by: Roman <ixrock@gmail.com>
* chore
Signed-off-by: Roman <ixrock@gmail.com>
* fix: hide traffic-light buttons for tray window
Signed-off-by: Roman <ixrock@gmail.com>
* removed redundant tray window
Signed-off-by: Roman <ixrock@gmail.com>
* removed delay from base-store
Signed-off-by: Roman <ixrock@gmail.com>
* adding cluster fix (reverted changes from master)
Signed-off-by: Roman <ixrock@gmail.com>
* - hide icon in dock when main-window closed (mac-os only)
- added preferences checkbox to open app at system start-up
Signed-off-by: Roman <ixrock@gmail.com>
* handle quit app action from tray menu
Signed-off-by: Roman <ixrock@gmail.com>
* moved generating tray icons to build step
Signed-off-by: Roman <ixrock@gmail.com>
* Fix integration tests (#1080)
* Fix integration tests
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* Update integration/helpers/utils.ts
Co-authored-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* fix-build: invisible app icon when there are more files within "build/icons/*.png"
Signed-off-by: Roman <ixrock@gmail.com>
* chore
Signed-off-by: Roman <ixrock@gmail.com>
* yarn i18n.extract
Signed-off-by: Roman <ixrock@gmail.com>
* clean-up
Signed-off-by: Roman <ixrock@gmail.com>
* navigation refactoring, move out `buildUrl` to common/utils so `react` and `react-router` not required as package.json dependecies in runtime (main)
Signed-off-by: Roman <ixrock@gmail.com>
* Ignore namespace query param on integration tests (#1109)
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
* merge-conflicts fixes
Signed-off-by: Roman <ixrock@gmail.com>
* support page fixes
Signed-off-by: Roman <ixrock@gmail.com>
* make eslint happy again
Signed-off-by: Roman <ixrock@gmail.com>
Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com>
Co-authored-by: Sebastian Malton <sebastian@malton.name>