Selected Option is now available in dropdown widget.
Fixes#383
Added a concept of derived properties for widgets. A derived property is something that is not stored in dsl because it can be evaluated from stored properties. For example: We do not need to store a `selectedOption` for a dropdown because it can be derived from `selectedIndex` and `options`. Similarly we do not need to store `selectedRow` in a table because it can be derived from `tableData` and `selectedRowIndex`.
Such properties are constructed on the fly for their usage in js execution and autocomplete.
To add a derived property to a widget add `getDerivedPropertiesMap` function which returns an object like this:
```
{
<DerivedPropertyName>: (widgetData: FlattenedWidgetProps) => {<<Implements how the derived property is evaluated.>>}
}
```
See merge request theappsmith/internal-tools-client!191
User Auth Flow
The following user scenarios are implemented:
Login
=====
- User should be able to login using email and password
- - Known issue: No redirect happens after login. In fact, an error shows. User should go to `/applications` manually
- User should be able to login using google
- - Know issue: User redirects to the `release` application or `production` applications. If you're using `release` or `production`, you'll be on the same domain.
- User should be able to see validation errors on login page for email and password
- Login button is in loading state when clicked (logging In)
- Login page should start with login button disabled
- Login page shows login errors, if any.
- User should be able to redirect to signup page from the link in the page
- User should be able to redirect to forgot page from the link in the page
- If the email field has any value, the value is carried over to forgot password page.
Sign Up
=======
- User should be able to sign up with email and password
- User should be able to see success message on successful signup.
- User should be able to see password and email validation errors.
- The signup button should work exactly the way it works in the login page
- User should be able to go back to login page from the link on the page.
Forgot Password
===============
- User should be able to see the email field populated if they had something in the email field on the login page. Works only when redirecting from login page's forgot password link.
- User should be able to see validation messages
- User should be able to initiate a request to send a reset token to their provided email
- The reset button should work exactly the way it works on the login page
- User should see the success and failure messages, with actionable links.
Reset Password
==============
- User should be able to reset their password
- User should be able to see success/failure messages with actionable links.
- User should be able to see validation errors.
- User should be able to go back to login page in case they change their mind.
Other changes
=============
- User should see proper error messages when we have a 500 error in forms
- User should redirect to login page if trying without a logged in session on protected routes (for eg: `applications/`)
- Custom form error message tag component which adheres to appsmith's intent colors.
See merge request theappsmith/internal-tools-client!177
Separate loading states per action
Fixes: #320, #273
* Fixes issue where loading state of one action is shared with others
* Adds a loading overlay when saving an action
See merge request theappsmith/internal-tools-client!188
Storybooks integration
- Add storybooks to appsmith UI application.
- addon-docs - Picks up documentation from the component
- addon-designs - Picks up figma URL to see widget and design side by side
- addong-knobs - Allows to toggle props in storybook
- Add a sample story for TextInputWidget
See merge request theappsmith/internal-tools-client!172
Editor header - Breadcrumbs routing
Changes:
- The first breadcrumb is "Home" which redirects to the homepage (/)
- The second breadcrumb is "Applications" which redirects to applications (/applications)
See merge request theappsmith/internal-tools-client!175
Add support for plugin name based filtering
Started pulling plugins from the server and showing actions and data sources depending of plugin name
See merge request theappsmith/internal-tools-client!169
Renamed styleName prop to accent
Fixes#108 a weird bug with styled-components that passes down styling props to the dom.
See merge request theappsmith/internal-tools-client!167