Commit Graph

11 Commits

Author SHA1 Message Date
Valera Melnikov
fb12f6ad87
chore:add eslint rules (#27878)
Add eslint rules
- promise-function-async
- prefer-nullish-coalescing
2023-10-09 16:54:06 +03:00
Aswath K
f2c3b971a4
chore: Removed wrappedChildren in FlexComponent (#27240)
`wrappedChildren` is used to add a `div` around widget which sets 100%
height and width. This happens only on deploy mode. This was added to
make sure some widgets are getting properly displayed in deploy mode.
In this PR, we are removing it and make the necessary changes in the
widget's code itself.
2023-09-14 15:22:58 +05:30
balajisoundar
2608e3dbd3
chore: Move the widget config to widget class (#26073)
## Description
- Remove the config objects from widget and config maps from the widget
factory.
- Introduce methods in widget development API to dynamically fetch this
items.
- freeze the widget configuration.

#### PR fixes following issue(s)
Fixes https://github.com/appsmithorg/appsmith/issues/26008
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [x] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [x] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-09-06 17:45:04 +05:30
Sangeeth Sivan
0ed9fd6f30
feat: code scanner widget default camera (#26083)
## Description

- support for default mobile camera for code scanner widget

#### PR fixes following issue(s)
Fixes #25766 

#### Media

#### Type of change

- New feature (non-breaking change which adds functionality)

#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [x] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-08-10 12:18:51 +05:30
Aswath K
6b8e61d651
refactor: Refactor Auto Layout min/max dimension for widgets (#24627)
AutoLayout specific widget logic such as setting min/max dimension is
set by making use of a global class .auto-layout that is set in the main
canvas. This leaks the idea of platform specific construct "auto-layout"
into widget component.

This PR resolves that by making use of necessary props to the widget
component
2023-07-04 19:42:00 +05:30
Satish Gandham
83538ad74d
feat: Bundle optimization and first load improvements (#21667)
Co-authored-by: Ivan Akulov <mail@iamakulov.com>
Co-authored-by: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Ivan Akulov <iamakulov@outlook.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
Co-authored-by: somangshu <somangshu.goswami1508@gmail.com>
2023-05-11 10:56:03 +05:30
Tolulope Adetula
7111e29c7d
fix: clickable containers in the List widget (#21987)
## Description

This fix primarily targets the List Widget. It enables the List Widget
Containers/Items to be selected when clicking on an empty space or a
plain widget/element. For instance, if a Text widget is clicked, the
onItemClick action on the list container is triggered. However, if the
Text widget contains a clickable link, only the link is activated, and
the OnClick event doesn't propagate to the List Widget Container. The
triggeredItems functionality remains unaffected.

Fixes #21409

## Type of change

> Please delete options that are not relevant.

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)



## How Has This Been Tested?

- Cypress

### Test Plan
> https://github.com/appsmithorg/TestSmith/issues/2372

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [x] Test plan has been approved by relevant developers
- [x] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-04-14 14:55:44 +01:00
Ivan Akulov
424d2f6965
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
## Description

This PR upgrades Prettier to v2 + enforces TypeScript’s [`import
type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export)
syntax where applicable. It’s submitted as a separate PR so we can merge
it easily.

As a part of this PR, we reformat the codebase heavily:
- add `import type` everywhere where it’s required, and
- re-format the code to account for Prettier 2’s breaking changes:
https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes

This PR is submitted against `release` to make sure all new code by team
members will adhere to new formatting standards, and we’ll have fewer
conflicts when merging `bundle-optimizations` into `release`. (I’ll
merge `release` back into `bundle-optimizations` once this PR is
merged.)

### Why is this needed?

This PR is needed because, for the Lodash optimization from
7cbb12af88,
we need to use `import type`. Otherwise, `babel-plugin-lodash` complains
that `LoDashStatic` is not a lodash function.

However, just using `import type` in the current codebase will give you
this:

<img width="962" alt="Screenshot 2023-03-08 at 17 45 59"
src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png">

That’s because Prettier 1 can’t parse `import type` at all. To parse it,
we need to upgrade to Prettier 2.

### Why enforce `import type`?

Apart from just enabling `import type` support, this PR enforces
specifying `import type` everywhere it’s needed. (Developers will get
immediate TypeScript and ESLint errors when they forget to do so.)

I’m doing this because I believe `import type` improves DX and makes
refactorings easier.

Let’s say you had a few imports like below. Can you tell which of these
imports will increase the bundle size? (Tip: it’s not all of them!)

```ts
// app/client/src/workers/Linting/utils.ts
import { Position } from "codemirror";
import { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

It’s pretty hard, right?

What about now?

```ts
// app/client/src/workers/Linting/utils.ts
import type { Position } from "codemirror";
import type { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```

Now, it’s clear that only `lodash` will be bundled.

This helps developers to see which imports are problematic, but it
_also_ helps with refactorings. Now, if you want to see where
`codemirror` is bundled, you can just grep for `import \{.*\} from
"codemirror"` – and you won’t get any type-only imports.

This also helps (some) bundlers. Upon transpiling, TypeScript erases
type-only imports completely. In some environment (not ours), this makes
the bundle smaller, as the bundler doesn’t need to bundle type-only
imports anymore.

## Type of change

- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?

This was tested to not break the build.

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 17:11:47 +05:30
Ravi Kumar Prasad
eb0c93e0e0
feat: Add type inference for redux's useSelector hook (#18257)
Add type inference for redux's useSelector hook

- Used module augmentation of TS to override the default root state interface
- Replaced custom hook with redux's useSelector
- It brings consistency as at a lot of places in the codebase we're using only the redux's useSelector
2022-11-28 08:13:17 +00:00
Dhruvik Neharia
2ec1ccc6a5
feat: Code Scanner Enhancements (#17929)
* feat: Add Scanner Variant - Click to scan and always on to code scanenr

* feat: Enhancements for code scanner's property pane - update help text, hide properties on always on

* feat: Add Image Mirror button to code scanner

* feat: Update code scanner video fit to contain

* feat: Add DSL migrations for Code Scanner

* feat: Make always on the default scanner layout, rename scannerVarient to scannerLayout

* feat: Stop scanning and detecting codes in background for code scanner widget

* test: Add Cypress tests for different scanner layouts for code scanner

* refactor: fix minor code callouts here and there

* refactor: Restructure cypress test suite

* feat: Increase code scanner delay to avoid unintended detections

* refactor: combine two different conditions into one ternary

* feat: Remove one cy test case

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-11-04 11:45:45 +05:30
Dhruvik Neharia
88637de7aa
feat: Code Scanner Widget (#15990)
* feat: Add QR Scanner Widget Folder

* feat: Add QR Code Scanner in the Modal

* feat: Add viewfinder and close button

* QR generator

* feat: Change deafult camera in QR Scanner to back camera

* feat: remove qr generator widget from the registry

* feat: update qr scanner icon

* style: qr code scanner modal and video container, remove futile code

* feat: add camera switch control panel to qr scanner

* fix: update input devices list when the menu opens in qr scanner

* fix: viewfinder in qr scanner responsive on mobile

* feat: Add onCodeDetected event to the QR Scanner widget

* feat: Add QR Scanner to autocomplete's entity definitions

* feat: Add tooltip to QR Scanner

* fix: isDisabled for QR Scanner

* feat: Add icon and related properties to QR Scanner

* feat: Add QR Scanner search tags, remove futile styles

* feat: Add QR Scanner to themes, regex for button color

* test: Add one cy test for qr scanner

* revert: Remove qr scanner from system themes, will be merged in a seperate PR

* fix: typo 'disable' to 'disabled' in qr scanner widget

* test: add disabled and visibility cy tests for qr scanner

* test: add open and close qr scanner modal test

* feat: remove qr scanner image for tests

* feat: add TODO item for solving performance issues for QR Generator widget

* feat: shift from react-qr-reader to react-qr-barcode-scanner to enable barcode and QR scanning both

* feat: Update QR Scanner Widget to Code Scanner Widget

* test: update tests from qr scanner to code scanner widget

* refactor: move code scanner's property pane config to individual files

* fix: code scanner error message on permission denied

* feat: remove Modal.setAppElement from code scanner

* fix: hide code scanner scan animation overflow

* feat: code scanner modal close on escape and overlay click

* fix: code scanner video border radius on mobile

* test: scan qr test for code scanner

* feat: Add Modal.setAppElement for code scanner modal accessibility

* fix: typo in search tags of code scanner

* feat: update property pane content helper texts of code scanner

* feat: hide code scanner widget from explorer

* fix: code scanner events not working

* feat: hide code scanner widget from explorer

* feat: Show Code Scanner widget in Explorer

* fix: remove code scanner scan cypress test

* feat: Add barcode reader to search tags and put Modal.setAppElement inside a block in code scanner

Co-authored-by: balajisoundar <balaji@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-09-16 10:25:32 +05:30