aboutsummaryrefslogtreecommitdiffstats
path: root/src/components
Commit message (Collapse)AuthorAge
* chore: dependency cleanup (#1794)Libravatar Markus Hatvan2021-08-15
| | | | | | - removed unnecessary smoothscroll-polyfill (electron is Chromium-only) - removed deprecated mobx-react-devtools (can be used through browser extension) - changed settings icon back to original (now called mdi-cog) - removed electron-rebuild (handled by electron-builder install-app-deps)
* fix: Fix issue with shortcut accelerators not working on macos where symbols ↵Libravatar Vijay A2021-08-15
| | | | were used for shift/alt keys
* Refactoring: Url helpers (#1789)Libravatar Vijay Raghavan Aravamudhan2021-08-14
| | | | | | | These changes are mainly to ensure that 'shell.open*' invocations are only in a single file. * Moved 'openPath' into the 'url-helpers' file. * Extract 'openExternalUrl' into a common location in 'url-helpers' This is done so that we can then apply vetting rules to ensure that there is no security concern as described in https://benjamin-altpeter.de/shell-openexternal-dangers/
* feat: Add buttons in the 'Advanced' section of preferences to allow the user ↵Libravatar Vijay A2021-08-14
| | | | to quickly open the Ferdi profile folder
* chore: Refactoring to reuse already defined constantsLibravatar Vijay A2021-08-13
|
* refactor: Use the 'shortcutKey' function without exposing the 'ctrlKey' or ↵Libravatar Vijay A2021-08-13
| | | | the 'cmdKey'
* Services now support aliases!!!! (#1774)Libravatar Vijay Raghavan Aravamudhan2021-08-12
| | | | | | Users can now search for the services not only based on the name, but also the alias (partial match, case-insensitive), when adding new services. fixes #1614, #1615, #1291
* chore: fixed issue with incorrect eslint config and fixed the reported errorLibravatar Vijay A2021-08-12
|
* feat: allow the user to enable/disable dark modeLibravatar Vijay A2021-08-11
| | | | (from the sidebar context menu)
* revert: fixing #1757 by commenting out partial fixLibravatar Vijay A2021-08-11
| | | | | | - Fixes issue with ferdi not starting up. - Also adds some defensive checks for the same code in other repeated locations.
* feat: follow OS reduced motion setting (#1757)Libravatar Markus Hatvan2021-08-10
| | | | | | | | - add missing meta charset to index.html - dont restrict scaling for user in index.html - load animations.css conditionally based on motion preference - load transitions conditionally in js and css based on motion preference Co-authored-by: Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>
* refactor: Move platform-specific logic for shortcut keys into common location.Libravatar Vijay A2021-08-10
|
* refactor: Removed duplication and added note about why they were slightly ↵Libravatar Vijay A2021-08-10
| | | | | | different (shortcut accelerator vs tooltip text)
* refactor: Use symbols for key shortcutsLibravatar Vijay A2021-08-10
|
* feat: added new Help menu item to allow easy import/export of config dataLibravatar Vijay A2021-08-09
|
* fix(spell-check): use electron's API to enable/disable spell-check when the ↵Libravatar Vijay A2021-08-09
| | | | | | app starts up fixes #1743
* refactor: path-references refactoring and using 'import' instead of ↵Libravatar Vijay Raghavan Aravamudhan2021-08-08
| | | | | | 'require' (#1752) * refactor references to 'userData' and 'appData' directories to move hardcoding into single location * convert to es6 for lower memory usage as per https://codesource.io/the-difference-between-import-and-require-in-javascript/
* refactor: prep for i18n of context menu itemsLibravatar Vijay A2021-08-06
|
* refactor: minor refactoring: solve name-clash of env vars vs vars in the programLibravatar Vijay A2021-08-05
|
* Removed straggling code related to 'popular services'.Libravatar Vijay A2021-08-03
|
* Fixed #1722 [skip ci]Libravatar Vijay A2021-08-02
|
* Removed 'Most Popular' services since it alludes to user-tracking (#1718)Libravatar Vijay Raghavan Aravamudhan2021-08-02
|
* Minor visual refactoring to hide double separator. [skip ci]Libravatar Vijay A2021-08-02
|
* chore: migrate from tslint to @typescript-eslint (#1706)Libravatar Markus Hatvan2021-07-30
| | | | | | | | | | - update .eslintrc to work for .js and .ts - update devDependencies - lint properly both root /src and nested /packages - update webhint recommended setting for tsconfig.json to shrink output - Manage all eslint rules from the repo root - escape single quotes in scripts to please windows build Co-authored-by: Vijay A <avijayr@protonmail.com>
* Recipe context isolation (#1456)Libravatar Kristóf Marussy2021-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Enable service contextIsolation * Enable contextIsolation on the service webviews * Expose a new API window.ferdi in the service main world to allow calling back into the service isolated world * Expose a new IPC message inject-js-unsafe from the service isolated world to execute Javascript in the service main world (i.e., run code without context isolation). While the name contains the "unsafe" suffix to show the lack of context isolation, this should mostly be safe, as no nodejs APIs are available in the injected code. * Refactor the Notifications shim into a part in the isolated world that handles displaying and modifying notifications, and a shim in the main world for the Notifications class. The two communicate via the window.ferdi endpoint and a Promise object can be used to detect notification clicks. * Refactor the screen sharing shim into a part in the isolated world that enumerated shareable screens and windows and a shim in the main world that displays the media selector and completes the media selection promise. * Expose the injectJSUnsafe API to recipes to inject javascript code into the main world without context isolation. * Expose setBadge to the main world The window.ferdi.setBadge API can be used to update the service badge from injected unsafe Javascript * Safer script injection into the service main world Make sure that we don't try to serialize stray objects back from the main world to the isolated world by always surrounding the script to be executed by an anonymous function. * Always read recipe assets as utf8 * Remove window.log from recipes We didn't use it anywhere and its behavior was confusing in production mode. * Inject multiple unsafe scripts at the same time * Find in page without remote module Remove the @electron/remote dependency from the find in page (Ctrl+F) functionality. The remote webContents is replaced with Electron IPC. Synchronous IPC messages are handled in the main Electron process, because the renderer process cannot reply to IPC messages synchronously. * Update to latest contextIsolation recipes * Fixing issue with missing 'fs' functions. Co-authored-by: Vijay A <avijayr@protonmail.com>
* Added a 'wakeUpStrategy' that the user can control to wake up a previously ↵Libravatar Vijay Raghavan Aravamudhan2021-07-23
| | | | hibernated service (#1680)
* Removed unused i18n keys. [skip ci]Libravatar Vijay A2021-07-23
|
* Fix hibernation mode (#1486)Libravatar kytwb2021-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use hibernation strategy from settings instead of hardcoded 5 minutes * Fix conditions with isHibernationEnabled, previously disableHibernation * Make service hibernation obey global setting Also refactors hibernation to move some hibernation enablement logic into the Service model * Remove global hibernation enable switch Implements option 4 from https://github.com/getferdi/ferdi/pull/1486#issuecomment-860290992 according to https://github.com/getferdi/ferdi/pull/1486#issuecomment-876558694 * Implements #865 : Add 'hibernate service' and 'wake up service' in the sidebar context menu. * Removed 'hibernationEnabled' check on main settings screen Since this is an (imo) incongruous behavior for the first time user. They will see a message, but with no ability to choose the hibernation strategy. * Autogenerated files from conflict fixes Co-authored-by: Kristóf Marussy <kristof@marussy.com> Co-authored-by: Vijay A <avijayr@protonmail.com>
* Removed Franz paid plans features:Libravatar Vijay A2021-07-20
| | | | | | | | - serviceLimit - planSelection - trialStatusBar and other Franz features that were for different tiers of subscription.
* Minor refactoring to avoid leaking of objects.Libravatar Vijay A2021-07-19
|
* Update submodules, browserslist data updates and linter fixes [skip ci]Libravatar github-actions2021-07-16
|
* if changed with conditional operator + getOS removed and replaced with isWindowsLibravatar Pierluigi Minardi2021-07-16
|
* Fix the file path format + function to recognize the OSLibravatar Pierluigi Minardi2021-07-16
|
* Fix on the path format + function to recognize the OSLibravatar Pierluigi Minardi2021-07-16
|
* fix: fix breaking tab componentLibravatar mhatvan2021-07-07
| | | | | | - move active tab state from componentDidMount to constructor - fix toggle.tsx breaking tsc - add .prettierrc.js for consistent formatting
* Added new help text for lay-users to figure out what their user-agent value is.Libravatar Vijay A2021-07-06
|
* Fixed issue with not being able to add new service.Libravatar Vijay A2021-07-04
|
* Upgrade various dependencies to latest part 2 (#1557)Libravatar Markus Hatvan2021-07-03
| | | | | | | | * Upgrade various dependencies to latest, remove unnecessary electron-hunspell - upgrade eslint and friends to latest - remove deprecated 'node-sass' in favor of 'sass' - disable new rules from 'eslint-config-airbnb' that are conflicting with current code style - add workspace config for 'vscode' that silences 'experimentalDecorator' warning and forces 'prettier' to single quote * Run yarn lint to autofix with new ruleset and worked down lint issues to zero
* Minor refactoring to move all runtime configs from 'config.js' into ↵Libravatar Vijay Raghavan Aravamudhan2021-07-03
| | | | 'environment.js'. (#1588)
* Upgrade various dependencies to latest, remove unnecessary electron-hunspellLibravatar mhatvan2021-06-24
|
* Upgraded eslint and fixed all the reported errors. (#1549)Libravatar Vijay Raghavan Aravamudhan2021-06-23
|
* Added new message when the user doesn't find a service (but that is present ↵Libravatar Vijay A2021-06-23
| | | | in the website).
* User agent as a user-preference (#1535)Libravatar Vijay Raghavan Aravamudhan2021-06-17
| | | | | | | | | | | | | | | | | | | | Introduced a global and a service-specific 'user-agent' value that can be set by the user from the preference section. The global override is in Advanced, while the service override was moved to the bottom of the service editor form (and now occupies the full width of the form). Show 'restart reqd' prompt for user-agent setting. The order of the user-agent is the following: 1. Any request header overrides in the recipe will still override the user agent string. 2. If the user has set a user agent override for the service, use that. 3. If the recipe has a predefined user agent, use that. 4. If the user has set a global user agent override, use that. 5. Otherwise, use the user agent string corresponding to the underlying Electron version. If the current webpage is the Google login form, we still remove the Chrome version number from the user agent string. The value that would be used if no custom override is set (recipe-provided value or global override for the service, current Electron instance for the global override) is shown as a placeholder in the input box on the corresponding setting screen. Co-authored-by: Kristóf Marussy <kristof@marussy.com>
* Fix active Todos service behaviour (#1481)Libravatar kytwb2021-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Return false instead of null in isTodosServiceAdded * Resolve from TODOS_RECIPES_ID instead of hardcoded TODOS_RECIPE_ID * Fix TodosWebview width toggling when isTodosServiceActive * Add more todo service recipe IDs * Refactor todos state management * Moved todos service URL and recipe ID computation logic to todos/store * Simplified TodosWebview by delegating to the store for the URL and removing the (unused) payment logic * Made the todos service computation logic in the Service model depend on the logic in todos/store * Made ServicesStore depend on the todos service logic from the Service model * Todos appearance fixes * Hide double horizontal rules if todo settings are hidden due to an added todo service * Hide todos panel border when the panel is hidden or expanded * Make expanded todos panel obey sidebar width and vertical style settings * Make todos/store use isValidExternalURL * Harden isValidExternalURL against malformed URLs * Reduce todo URL string duplication in config.js Co-authored-by: Kristóf Marussy <kristof@marussy.com>
* Added ability to turn off notifications for clipboard events generated by ↵Libravatar Vijay Raghavan Aravamudhan2021-06-05
| | | | context menu actions (#1494)
* Removed hardcoded strings and reused constants defined in config.js (#1499)Libravatar Vijay Raghavan Aravamudhan2021-06-05
|
* Upgraded electron to '13.1.0'.Libravatar Vijay A2021-06-03
|
* Replace 'remote' with 'electron/remote' (#1448)Libravatar Vijay Raghavan Aravamudhan2021-05-26
| | | * Locked new version of 'recipes' submodule with corresponding changes.
* Expose recipe version in 'Settings' dialog while adding or editing a ↵Libravatar Vijay Raghavan Aravamudhan2021-05-22
| | | | service. (#1439)
* Changed occurrences of 'Franz' to 'Ferdi' (probably missed earlier while ↵Libravatar Vijay A2021-05-17
| | | | catchup from Franz source). [skip ci]