* INS-674 - First pass at making the send button more visible
* [wip] adds rect for send button
* Update colors in the SVG to match send button
* Update the gRPC send button to also use theme colors
* Adding left margin to send button
Co-authored-by: Eric Reynolds <eric.reynolds@konghq.com>
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* fix: insomnia open dialog for proto directory can't select directories
* uses a named export for selectFileOrFolder
(also, removes original js file from rebase)
* clears error by leveraging exhaustiveness check
* fixes bug: the `name` field is actually for a file filter
see the referenced pull request.
As for the `extensions: ['*']`, there's no reason I can see to include a filter and then tell the filter to then accept everything.
* update selectFileOrFolder mocks
* use switch (for exhaustiveness checking) and type selectedFormat
* removes unnecessary filters from _save_ dialog
from the docs:
> The filters specifies an array of file types that can be displayed
As suspected, this is not needed. A user is free to save it wherever they want.
* adds extension to saved file
not sure why this was missing before, but it appears to have been a bug
* formatting updates
best to "ignore whitespace" for this commit. I did this with the hope of using the `ThunkAction` type from `redux-thunk`, but once I got them all looking good and started adding the type I quickly learned there's quite a bit more work to do in this area before we can have such a thing. I therefore opted to just call it a day at that and take the (no-op) formatting changes and typings.
* removes remaining name filters from save dialogs
same reason as the 2nd to prior commit - they cause the bug
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* readability improvements and reduced indirection
* adds type for handleShowModifyCookieModal
* correctly types wrapperProps property, thereby fixing bug.
if you add `console.log({ previewHidden, propsOne: this.props.wrapperProps.activeWorkspaceMeta });` to the third line of `_renderPreview()` you'll see that `activeWorkspaceMeta` is indeed, sometimes, `undefined.
Also, there's no reason to use `await` on `this.setState`. I didn't find any more of these in the codebase, I just found this one.
* adds type for swaggerUiSpec
* undoes lifting props to state
almost always, this is done for performance reasons, but I removed it the app is working pretty quick-and-snappy for me without needing to introduced duplicated application state and keep track of it.
I went ahead and measured it before and after this commit (using performance.now):
before = [
1.93500000750646,
1.149999996414408,
0.9499999869149178,
0.9950000094249845,
0.8650000090710819,
1.560000004246831,
1.5699999930802733,
0.8450000023003668,
1.4550000196322799,
1.3299999991431832,
1.3050000125076622,
1.4099999971222132,
1.3099999923724681,
1.3100000214762986,
1.1999999987892807,
1.0099999781232327,
0.830000004498288,
1.2449999921955168,
1.2500000011641532,
1.4349999837577343,
]
after = [
2.9400000057648867,
2.449999999953434,
2.33499999740161,
2.2849999950267375,
1.7700000025797635,
1.8149999959859997,
2.1249999990686774,
1.9150000007357448,
2.074999996693805,
1.9899999897461385,
2.0200000144541264,
2.869999996619299,
2.1450000058393925,
2.33499999740161,
2.130000008037314,
2.119999990100041,
2.144999976735562,
2.130000008037314,
2.380000009201467,
2.8999999922234565,
]
> R.mean(before)
> 1.2480000004870817
> R.mean(after)
> 2.243749999080319
> R.median(before)
> 1.2775000068359077
> R.median(after)
> 2.137499992386438
So basically, considering a 16ms render rate (i.e. 60hz), 1ms saved by lifting props to state makes no difference in application performance.
This is committed separately so that if there's any reason we want to keep the prior implementation, we can just still do so.
* fix ts-expect-error
* removes useless await
see https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/await-thenable.md
We're not quite ready to have this rule on everywhere, but in this case I can see that it's correct to follow.
* add comment about magic number
and moves the assignment to the one place it's used
I opted not to make a ticket because we are recently running out of tickets and this seems to be a relatively small thing @reynolek please confirm this is the correct course of action.
* initialize ref to reflect reality (and include actual type)
* fixes root cause of error, inlines one-liners
the error with the type of `_handleInputColorChange` was due to `onChange` being the wrong prop to use (where `onChange` is the one we want).
* use onChange instead of onInput to access correct types
ultimately, since react's behavior diverged from the DOM behavior to match onInput, this should have no effect on any functionality since react assigns this event to `onChange` anyway. see https://github.com/facebook/react/blob/master/fixtures/attribute-behavior/src/attributes.js#L2089
* clears remaining ts-expect-errors in file
* updates fallback call per review feedback
* no default export (prepping for hooks)
* makes logic match other implementation
note that above in `componentDidUpdate` it uses `<= 0`, whereas here it uses `> 0` but then only checks for false.
Also, logically, there's no way to ever get `aria-hidden="true"` since it returns early so that entire attribute can just be removed.
* removes fake private class member syntax
this is moving to hooks anyway, but in the meantime...
* undoes calling identical code twice in a row...
* condenses class methods to prepare for hooks
* hooks refactor
fairly faithful to the original, this attempts to just refactor to hooks. this exposes, again, the fact that we're setting state within useEffect.
* removes 200 ms offset for response time
so that, now, you know, the time reported is the actual time.
* adds logging for response timer lage
* removes timer logging and `responseTime` prop after PR discussion
it's definitely fruitful, but the fix for the callstack exceeded is what needs to be the focus.
* removes shadowed variable per PR feedback
* reinstates and documents 200ms compensation
* add delay endpoint to example server
* Update packages/insomnia-app/app/ui/components/response-timer.tsx
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* sanitize all electron.shell.openExternal calls
* adds lint rule to disallow future usage of `openExternal`
* updates to use URL constructor per review feedback
* Prompt existing users about analytics
* Fix the tests
* Set hasPromptedAnalytics to true when going through the onboarding flow
* Add comments
* Show the analytics prompt after migrating if needed as well
* test: add a few more tests for analytics activity
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* fix(tracking data) - Honor data sharing
* Utilizes the Data Sharing preference to determine what data is
sent to the notification endpoint
* fix(tracking data) - Move 2 variables that fall under Service Data
* Stop sending aggregated metrics to the notification endpoint
* Disable sending of segment events when analytics are disabled
Co-authored-by: Eric Reynolds <eric.reynolds@konghq.com>
Co-authored-by: David Marby <david@dmarby.se>
* Add settings for color scheme detection and themes
Default light and dark themes can still be changed.
For now its studio-light and default for core, and studio-dark and studio-light for designer.
* Add color scheme type and supporting methods
The detection of dark scheme is based on the background color at the moment.
This seems to work pretty well, but is not an ideal solution.
I think themes should at least get to override this.
* Add support for choosing light and dark theme to settings
This adds a checkbox to the theme settings that determines whether we use the OS color scheme.
If we don't (default) everything stays the same as before.
If we do, themes are rendered in two groups. One for the light themes and one for the dark themes. They can be chosen independently. None of this overrides the default theme choice.
* Add padding to the theme settings tab
Themes are still aligned by adding negative margin.
A bit of a hack, open for suggestions.
* Update theme on OS color scheme change
* Replace usages of setTheme with applyColorScheme
This makes sure that we don't override the user's choice.
* Update packages/insomnia-app/app/plugins/misc.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Remove dark mode heuristic
* Remove unused button value
* Update theme settings design
* Update packages/insomnia-app/app/ui/components/settings/theme.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Update packages/insomnia-app/app/ui/components/settings/theme.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Replace object literal lookups
Do not use object literal lookups to make code more readable
* Remove unused parameter
* Disable default theme select when auto detection is enabled
* Fix imports after rebase
* Update packages/insomnia-app/app/ui/components/modals/settings-modal.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Update packages/insomnia-app/app/ui/components/modals/settings-modal.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Remove theme header
* Disable hover animation and border on disabled theme buttons
* Clean up double negation in css
Replace :not(:disabled) with :enabled. Not sure what I was thinking there.
* Update index.js
Co-authored-by: Opender Singh <opender94@gmail.com>
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* chore: refactor
* chore: fix one test
* chore: fix all tests
* chore: fix all existing tests
* chore: add prompting tests
* chore: ignore flaky test for now
* fix(import) do differential patching for design activity imports
This patch adds differential patching for imports that occur during the switching between
design and debug tabs inside of Designer. As reported through #2971, and others, this patch
favors existing data over imported data, values that exist already on the document will remain
unchanged, only new values (including array based values) will be added / removed.
This also includes a bypass feature for urls, currently these options are not exposed through
the interface but could be. This feature is an object to allow for future properties for
preference-based patching.
- Adds `options.enableDiffBasedPatching` and `options.enableDiffDeep` to `importRaw` for backwards compat.
- Adds `options.bypassDiffProps.url` for url bypassing and use an object for future items.
- Adds `diffPatchObj` based on differential patching for objects (works with arrays as well).
Future ideas:
- `hasBeenModifiedByUser` property map object to allow changing properties that haven't been touched by the user with options.
fixes: #2971, #2882, #3038, #2442
* adds some basic tests
- also adds jest (which was (mistakenly) not there before)
- does not call `.hasOwnProperty` directly, per https://eslint.org/docs/rules/no-prototype-builtins (which, we will add more formally at a later date)
* don't special-case workspaces
this ensures the behavior of the initial PR is more preserved
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
* feat: add prompt and update import logic
* feat: update usages and plugin api
* chore: WIP
* chore: convert to options
* chore: don't create workspace model until needed
* chore: add OR condition
* chore: add workspace name and don't change scope
* feat: prompt with appropriate name
* chore: rename
* chore: rename type
* chore: update signature
* chore: properly type the import functions
* feat: don't activate the workspace after importing
* chore: show loading on homepage
* fix: typo
* chore: fix tests and rename
* Update packages/insomnia-app/app/common/__tests__/import.test.js
Co-authored-by: David Marby <david@dmarby.se>
Co-authored-by: David Marby <david@dmarby.se>
* Hide the active workspace when moving a folder (#2849)
* Change workspace to activeWorkspace for clarity
* Use map instead of flatMap for consistency
* feat(insomnia-components): add async-button
* feat: show error if parsing protofile fails during upload/add
* chore: flow is poop
* feat: use try-finally
* Fix trailing whitespace in vcs
* Add logging to sync graphql queries
* Don't remotely create a sync project when opening the share dialog
* Fix pulling workspaces with a missing default branch
* Fix the sync merge modal
* Fix workspaces dissapearing when switching to an empty default branch
* Don't clear oAuth2 session on restart
Offer button to user where it can be cleared without restart
* PR improvements
* remove accidental newline
* PR improvements 2
* cleanup
* capitalize insomnia
* Adding list group component with stubbed badge & list item
* Cleaning up stories, error padding tweak
* Results list item padding fix
* Review feedback and component provisioning
Shift to functional components
Abstract both list and list item away for re-use
Roll unit test result specific styling into UT source
Roll supporting UI over including badges > extend SC for flavors
Shift timestamp to render the value, JSX handling formatting
* Renaming UT specific badges
* List group and unit test wrapper component updates
- Pulled unit test results list item into SB
- All unique aspects of UT results are bundled in the IC which extend base item
- Cleansed UT wrapper of inline components
- Setting up list group and list group item base for middle area
* Abstrating badges, timestamp and updating unit test wrapper
* Update packages/insomnia-components/components/list-group/unit-test-result-badge.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Update packages/insomnia-components/components/list-group/unit-test-result-item.js
Co-authored-by: Opender Singh <opender94@gmail.com>
* Dep cleanup, PR feedback
Co-authored-by: Opender Singh <opender94@gmail.com>
* Replace textarea with code editor
* Add raw-editor class and props to make style consistent
* Merge raw-editor style into general.less
Co-authored-by: Li Hu <li.hu@onedegree.hk>
Co-authored-by: Opender Singh <opender94@gmail.com>
* Upgrade Electron to 8, bump Node version, fix font-manager
* Specify nodeIntegration as true
* Get <webview> working again
* Get <webview> working again
* Electron 9.0
* Escape parens in plugin install exec path (newer Electron added them)
* Bump versions for first alpha
* Electron 9.1
* Convert all Electron APIs that switched from callback to Promise
* Fix send-and-download feature
* Remove user-agent override hack for OAuth 2 login window
* Bump alpha version
* Fix issue regarding chokidar
* Add package-lock.json
* Upgrade chokidar because @babel/cli uses an older incompatible version of fsevents
* Fix source maps
* Read .nvmrc in GitHub actions
* Address remaining PR feedback
* Updated code editor to support toggling of beautify in editor.
Added a button to toggle beautify. When toggled text is 'beautified' immediately and when text is pasted into the editor or when the editor is blurred.
Removed _prettify method because it is no longer used.
* Changed toggle of auto beautify to dropdown selection.
The toggle has been replaced by a dropdown selection, the text in the beautify button will change accordingly. In manual mode, the button can still be clicked.
* Updated label of the beautify button.
* Changed caret up to cog icon + minor change to button label
* Changed cog icon to wrench icon.
Co-authored-by: Mike Ellan <52717970+sonicyeti@users.noreply.github.com>
* Start working on insomnia-testing package to generate Mocha code
* Moved some things around
* Integration tests and ability to run multiple files
* Fix integration tests
* Rename runSuite to runMochaTests
* Add types for test results
* Fix lint errors
* Play with Chia assertions
* insomnia and chai globals, plus a bunch of improvements
* Stub chai and axios Flow types
* Ability to reference requests by ID
* Fix chai flow-typed location
* Address PR comments (small tweaks)
* Basic UI going
* Lots and lots and lots
* Pretty-much done with the unit test UI
* Minor CSS tweak
* Activity bar triple toggle and more
* Minor tweak
* Unit Test and Suite deletion
* Bump Designer version
* Fix eslint stuff
* Fix insomnia-testing tests
* Fix tests
* lib@2.2.9
* Remove tests tab from response pane
* Hook up Insomnia networking
* Fix linting
* Bump version for alpha
* Remove extra ActivityToggleSwitch
* Remove unused import
* Add test:pre-release script that excludes CLI tests
* Less repetition
* Clean some things up
* Tweaks after self-cr
* Undo request ID tag
* Swap out switch for new activity toggle component
* Extra check
* Remove dead code
* Delete dead test
* Oops, revert example code
* PR feedback
* Unit test UI tweaks
* More PR comment addresses
* Change test name
* Start working on insomnia-testing package to generate Mocha code
* Moved some things around
* Integration tests and ability to run multiple files
* Fix integration tests
* Rename runSuite to runMochaTests
* Add types for test results
* Fix lint errors
* Play with Chia assertions
* insomnia and chai globals, plus a bunch of improvements
* Stub chai and axios Flow types
* Ability to reference requests by ID
* Fix chai flow-typed location
* Address PR comments (small tweaks)
* Basic UI going
* Lots and lots and lots
* Pretty-much done with the unit test UI
* Minor CSS tweak
* Activity bar triple toggle and more
* Minor tweak
* Unit Test and Suite deletion
* Bump Designer version
* Fix eslint stuff
* Fix insomnia-testing tests
* Fix tests
* lib@2.2.9
* Remove tests tab from response pane
* Hook up Insomnia networking
* Fix linting
* Bump version for alpha
* Remove extra ActivityToggleSwitch
* Remove unused import
* Add test:pre-release script that excludes CLI tests
* Less repetition
* Clean some things up
* Tweaks after self-cr
* Undo request ID tag
* Swap out switch for new activity toggle component
* Extra check
* Remove dead code
* Delete dead test
* Oops, revert example code
* PR feedback
* More PR comment addresses
* Hacked insomnia lib package to get Insomnia's networking in tests
* Some small tweaks
* Got it mostly working
* Tweak
* Fix
* Fix pkg
* Fix some things
* Add comment
* Comment out log
* Some tweaks after doing a self code review
* Fix test
* Update app name for `insomnia-send-request`
* Update package-lock
* Update package-locks
* Fix tests
* Add gitignore
* Fix tests hopefully
* Fix accidental dep deletions
* Fix tests again
* Mock for all tests
* Update tests again
* Don't compile for Electron for tests
* Update release scripts to disable tests
* deps: bump node-libcurl to latest prerelease version
* Add .npmrc, bump Electron to 3.1.13, remove electron-rebuild
* Minor tweaks
* package locks
* Bump version
* Switch to font-manager and fix fsevents rimraf
* Try generating npmrc inside build/
* Try uninstall of fsevents instead
* Bump
* Try npm env vars
* Extra .npmrc
* Try npm env vars in all CI
* Fix insomnia-cookies dependencies
* Fix typo
* Loosen nvmrc version
* Remove npm uninstalls
* Build outside of Docker
* Remove Docker, build all on GH Actions
* Bump Core version
* Disable Snapcraft for now
* Bump
* Disable snap for Designer too
* Update product name for Core
* Update test.yml
* Remove Travis file
* Make userData folder explicit and add Curl types
* Remove old Kong icon
* Remove curl.js adapter
* Revert productName
* Fix release date
* Try remove windows build tools from CI
* Add comment about Snap deploys
* Remove the pane border on Windows (no longer necessary)
Co-authored-by: Jonathan Cardoso Machado <me@jonathancardoso.com>
* Initial commit
* WIP
* Fix lint
* Fix tests
* Add test for workspace migration
* Rename title to use fileName instead of workspace name for designer
* Linting
* New dialog() method to show generic dialogs from Plugins
* Clarified deprecated api method
* Body now required in dialog()
* Made options arg optional too
* Fix tests
* allow checkboxes input fields in prompt dialog
* return booleans as strings from prompt
* align label with checkbox for boolean prompt
* set css classes based on html input type
* add support for live display names in template tags
* add setting to (de)activate live display names in template tags
* Revert "add setting to (de)activate live display names in template tags"
This reverts commit 8cd70b87b5.
* remove liveDisplayName from the Prompt plugin
* use liveDisplayName over 1st arg if it's an enum
* Add breaking test
* Remove preferential ordering of tags over variables in nunjucks
* Remove preferential ordering of tags over variables in nunjucks
* simplify nunjucks sort
* Add breaking test for incorrect order
* Update json-order and consume
* Refine test with dataPropertyOrder
* Tests
* add note
* Add to test
* Missed the await