feat: update button states (#18335)

* fix: Form message component link issue

* removed the inverted flag for testing

* use updated design system

* category.tertiary -> category.secondary

* fix: Made changes to pass action link element to design system component - formMessage

* chore: update design-system version to access new tertiary button styles

* chore: update design-system version to use blacks instead of grays

* chore: bump design-system version to use buttons with explicit background color

* Remove rules that mess with border, background, text color on StyledPropertyPaneButton

* chore: update design-system version to use updated button categories across all ads components

Co-authored-by: Albin <albin@appsmith.com>
This commit is contained in:
Tanvi Bhakta 2022-12-07 17:14:30 +05:30 committed by GitHub
parent b2f67e12bc
commit 9931d3cdc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 52 additions and 135 deletions

View File

@ -46,7 +46,7 @@
"cypress-log-to-output": "^1.1.2",
"dayjs": "^1.10.6",
"deep-diff": "^1.0.2",
"design-system": "npm:@appsmithorg/design-system@1.0.36",
"design-system": "npm:@appsmithorg/design-system@1.0.37",
"downloadjs": "^1.4.7",
"draft-js": "^0.11.7",
"exceljs-lightweight": "^1.14.0",

View File

@ -287,7 +287,7 @@ function ActionSidebar({
{/*<div className="description">Go to canvas and select widgets</div>*/}
<SnipingWrapper>
<Button
category={Category.tertiary}
category={Category.secondary}
className={"t--select-in-canvas"}
onClick={handleBindData}
size={Size.medium}

View File

@ -581,7 +581,7 @@ function ApiResponseView(props: Props) {
{createMessage(ACTION_EXECUTION_MESSAGE, "API")}
</Text>
<CancelRequestButton
category={Category.tertiary}
category={Category.secondary}
className={`t--cancel-action-button`}
onClick={() => {
handleCancelActionExecution();

View File

@ -58,7 +58,7 @@ class ButtonControl extends BaseControl<
return (
<StyledButton
category={Category.tertiary}
category={Category.secondary}
disabled={isDisabled?.(widgetProperties)}
isLoading={this.state.isLoading}
onClick={this.onCTAClick}

View File

@ -114,7 +114,7 @@ class ButtonListControl extends BaseControl<ControlProps, State> {
/>
<StyledPropertyPaneButtonWrapper>
<AddNewButton
category={Category.tertiary}
category={Category.secondary}
icon="plus"
onClick={this.addOption}
size={Size.medium}

View File

@ -246,7 +246,7 @@ class ChartDataControl extends BaseControl<ControlProps> {
</Wrapper>
<StyledPropertyPaneButton
category={Category.tertiary}
category={Category.secondary}
icon="plus"
onClick={this.addOption}
size={Size.medium}

View File

@ -81,7 +81,7 @@ class ColumnActionSelectorControl extends BaseControl<
})}
<StyledPropertyPaneButton
category={Category.tertiary}
category={Category.secondary}
icon="plus"
onClick={this.addColumnAction}
size={Size.medium}

View File

@ -196,7 +196,7 @@ class FieldConfigurationControl extends BaseControl<ControlProps, State> {
const addNewFieldButton = (
<AddFieldButton
category={Category.tertiary}
category={Category.secondary}
className="t--add-column-btn"
icon="plus"
onClick={this.addNewField}

View File

@ -235,7 +235,7 @@ export function KeyValueComponent(props: KeyValueComponentProps) {
})}
<StyledPropertyPaneButton
category={Category.tertiary}
category={Category.secondary}
className="t--property-control-options-add"
icon="plus"
onClick={addPair}

View File

@ -114,7 +114,7 @@ class MenuItemsControl extends BaseControl<ControlProps, State> {
/>
<StyledPropertyPaneButtonWrapper>
<AddMenuItemButton
category={Category.tertiary}
category={Category.secondary}
className="t--add-menu-item-btn"
icon="plus"
onClick={this.addOption}

View File

@ -186,7 +186,7 @@ class PrimaryColumnsControl extends BaseControl<ControlProps, State> {
</EvaluatedValuePopupWrapper>
<AddColumnButton
category={Category.tertiary}
category={Category.secondary}
className="t--add-column-btn"
icon="plus"
onClick={this.addNewColumn}

View File

@ -248,7 +248,7 @@ class PrimaryColumnsControlV2 extends BaseControl<ControlProps, State> {
</EvaluatedValuePopupWrapper>
<AddColumnButton
category={Category.tertiary}
category={Category.secondary}
className="t--add-column-btn"
icon="plus"
onClick={this.addNewColumn}

View File

@ -311,20 +311,6 @@ export const StyledPropertyPaneButton = styled(Button)`
margin-left: auto;
display: flex;
justify-content: flex-end;
border: 1px solid ${Colors.GREY_8};
&,
&:active {
border: 1px solid ${Colors.GREY_8};
color: ${Colors.GREY_8};
background-color: transparent;
}
&:hover {
border: 1px solid ${Colors.GREY_8};
color: ${Colors.GREY_8};
background-color: ${Colors};
}
&&& svg {
width: 14px;
@ -334,12 +320,6 @@ export const StyledPropertyPaneButton = styled(Button)`
stroke: ${Colors.GREY_8};
}
}
&:disabled {
background-color: ${Colors.GREY_1};
color: var(--appsmith-color-black-400);
border-color: ${Colors.MERCURY};
}
`;
export const StyledOptionControlInputGroup = styled(StyledInputGroup)<{

View File

@ -50,7 +50,7 @@ function AddTabButtonComponent({ widgetId }: any) {
return (
<StyledPropertyPaneButtonWrapper>
<StyledPropertyPaneButton
category={Category.tertiary}
category={Category.secondary}
className="t--add-tab-btn"
icon="plus"
onClick={addOption}

View File

@ -862,7 +862,7 @@ export function ApplicationCard(props: ApplicationCardProps) {
)}
{!isMenuOpen && (
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--application-view-link"
fill
href={viewModeURL}

View File

@ -134,7 +134,7 @@ function ForkApplicationModal(props: ForkApplicationModalProps) {
<ButtonWrapper>
<Button
category={Category.tertiary}
category={Category.secondary}
disabled={forkingApplication}
onClick={() => setModalClose && setModalClose(false)}
size={Size.large}

View File

@ -742,7 +742,7 @@ function ApplicationsSection(props: any) {
title={`Invite Users to ${workspace.name}`}
trigger={
<Button
category={Category.tertiary}
category={Category.secondary}
icon={"share-line"}
size={Size.medium}
tag="button"

View File

@ -188,7 +188,7 @@ export default function Pagination(props: PaginationProps) {
theme={props.theme}
/>
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--apiFormPaginationPrevTest"
height="auto"
onClick={() => {
@ -213,7 +213,7 @@ export default function Pagination(props: PaginationProps) {
theme={props.theme}
/>
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--apiFormPaginationNextTest"
height="auto"
onClick={() => {

View File

@ -153,7 +153,7 @@ function UpdatesModal({
))}
<div className="flex justify-end gap-2 items-center">
<Button
category={Category.tertiary}
category={Category.secondary}
onClick={closeModal}
size={Size.large}
tag="button"

View File

@ -142,7 +142,7 @@ class DatasourceDBEditor extends JSONtoForm<Props> {
</FormTitleContainer>
{viewMode && (
<EditDatasourceButton
category={Category.tertiary}
category={Category.secondary}
className="t--edit-datasource"
onClick={() => {
this.props.setDatasourceViewMode(false);

View File

@ -213,7 +213,7 @@ export default function IntroductionModal({ close }: IntroductionModalProps) {
</ModalFooterText>
<div>
<StyledButton
category={Category.tertiary}
category={Category.secondary}
className="t--introduction-modal-build-button my-6"
onClick={onBuildApp}
size={Size.large}

View File

@ -158,7 +158,7 @@ function GeneratePageSubmitBtn({
}) {
return showSubmitButton ? (
<FormSubmitButton
category={Category.tertiary}
category={Category.secondary}
data-cy="t--generate-page-form-submit"
disabled={disabled}
isLoading={isLoading}
@ -672,7 +672,7 @@ function GeneratePageForm() {
) : null}
{showEditDatasourceBtn && (
<EditDatasourceButton
category={Category.tertiary}
category={Category.secondary}
onClick={goToEditDatasource}
size={Size.medium}
text="Edit Datasource"

View File

@ -310,7 +310,7 @@ function DatasourceCard(props: DatasourceCardProps) {
<ButtonsWrapper className="action-wrapper">
{(!datasource.isConfigured || supportTemplateGeneration) && (
<GenerateTemplateOrReconnect
category={Category.tertiary}
category={Category.secondary}
className={
datasource.isConfigured
? "t--generate-template"

View File

@ -155,7 +155,7 @@ function UnsupportedPluginDialog(props: Props) {
<ActionButtonWrapper>
<ActionButton
category={Category.tertiary}
category={Category.secondary}
onClick={() => {
AnalyticsUtil.logEvent("UNSUPPORTED_PLUGIN_DIALOG_BACK_ACTION");
handleClose();

View File

@ -91,7 +91,7 @@ function ConnectDataCTA(props: ConnectDataCTAProps) {
text="CONNECT DATA"
/>
<Button
category={Category.tertiary}
category={Category.secondary}
onClick={openHelpModal}
tabIndex={0}
tag="button"

View File

@ -1119,7 +1119,7 @@ export function EditorJSONtoForm(props: Props) {
{createMessage(ACTION_EXECUTION_MESSAGE, "Query")}
</Text>
<CancelRequestButton
category={Category.tertiary}
category={Category.secondary}
className={`t--cancel-action-button`}
onClick={() => {
handleCancelActionExecution();

View File

@ -101,7 +101,7 @@ class RequestConfirmationModal extends React.Component<Props> {
</ModalBody>
<ModalFooter>
<Button
category={Category.tertiary}
category={Category.secondary}
cypressSelector="t--cancel-modal-btn"
onClick={() => {
dispatch(cancelActionConfirmationModal(modalInfo.name));

View File

@ -278,7 +278,7 @@ class DatasourceSaaSEditor extends JSONtoForm<Props, State> {
{viewMode && (
<EditDatasourceButton
category={Category.tertiary}
category={Category.secondary}
className="t--edit-datasource"
onClick={() => {
this.props.setDatasourceViewMode(false);

View File

@ -41,11 +41,10 @@ function DeleteThemeModal(props: DeleteThemeModalProps) {
<div className="pb-8 space-y-3 ">
<p>{createMessage(DELETE_APP_THEME_WARNING)}</p>
</div>
<div className="">
<div className="flex items-center justify-end space-x-3">
<Button
category={Category.tertiary}
category={Category.secondary}
onClick={onClose}
size={Size.medium}
text="Cancel"

View File

@ -142,7 +142,7 @@ function SaveThemeModal(props: SaveThemeModalProps) {
<div className="">
<div className="flex items-center space-x-3">
<Button
category={Category.tertiary}
category={Category.secondary}
onClick={onClose}
size={Size.medium}
text="Cancel"

View File

@ -42,7 +42,7 @@ export function ThemeBetaCard() {
<div>{createMessage(APP_THEME_BETA_CARD_CONTENT)}</div>
<div className="flex items-center space-x-2">
<Button
category={Category.tertiary}
category={Category.secondary}
size={Size.small}
text="Learn more"
/>

View File

@ -263,7 +263,7 @@ function ConnectGitPlaceholder() {
<StyledIcon />
{isGitConnectionEnabled ? (
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--connect-git-bottom-bar"
onClick={() => {
AnalyticsUtil.logEvent("GS_CONNECT_GIT_CLICK", {

View File

@ -578,7 +578,7 @@ function ReconnectDatasourceModal() {
position="bottom-right"
>
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--skip-to-application-btn"
href={appURL}
onClick={() => {

View File

@ -225,7 +225,7 @@ function RepoLimitExceededErrorModal() {
</InfoWrapper>
<ButtonContainer>
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--contact-sales-button"
onClick={() => {
AnalyticsUtil.logEvent("GS_CONTACT_SALES_CLICK", {

View File

@ -59,7 +59,7 @@ export default function ConflictInfo({
</InfoWrapper>
<Row>
<OpenRepoButton
category={Category.tertiary}
category={Category.secondary}
className="t--commit-button"
href={browserSupportedRemoteUrl}
size={Size.large}

View File

@ -12,7 +12,7 @@ const StyledButton = styled(Button)`
export default function DefaultTag() {
return (
<StyledButton
category={Category.tertiary}
category={Category.secondary}
data-testid="t--default-tag"
disabled
size={Size.xxs}

View File

@ -27,7 +27,7 @@ export default function ButtonComponent({ setting }: SettingComponentProps) {
<FormGroup setting={setting}>
<ButtonWrapper>
<StyledButton
category={Category.tertiary}
category={Category.secondary}
data-testid="admin-settings-button"
disabled={setting.isDisabled && setting.isDisabled(settings)}
onClick={() => {

View File

@ -75,7 +75,7 @@ function FieldCheckboxWithCheckboxText(props: CheckboxProps) {
<div>{labelSuffix}</div>
{props.needsUpgrade && (
<UpgradeButton
category={Category.tertiary}
category={Category.secondary}
onClick={onUpgrade}
text="UPGRADE"
/>

View File

@ -62,7 +62,7 @@ const saveAdminSettings = (props: SaveAdminSettingsProps) => {
text={createMessage(() => "Save & Restart")}
/>
<StyledClearButton
category={Category.tertiary}
category={Category.secondary}
className="t--admin-settings-reset-button"
disabled={Object.keys(settings).length == 0}
onClick={onClear}

View File

@ -92,7 +92,7 @@ function ForkTemplate({
/>
<ButtonsWrapper>
<Button
category={Category.tertiary}
category={Category.secondary}
disabled={isImportingTemplate}
onClick={onClose}
size={Size.large}

View File

@ -141,7 +141,7 @@ export default function DetailsForm(
)}
<ButtonWrapper>
<Button
category={Category.tertiary}
category={Category.secondary}
className="t--welcome-form-next-button"
disabled={props.invalid}
onClick={props.onNext}

View File

@ -74,7 +74,7 @@ function DeleteConfirmationModal(props: DeleteConfirmationProps) {
</Text>
<ButtonWrapper>
<ImportButton
category={Category.tertiary}
category={Category.secondary}
className=".button-item"
onClick={onClose}
size={Size.large}

View File

@ -1261,7 +1261,7 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.7.6":
"@babel/runtime@^7.18.3":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
@ -1422,7 +1422,7 @@
resize-observer-polyfill "^1.5.1"
tslib "~1.13.0"
"@blueprintjs/datetime@3.23.6", "@blueprintjs/datetime@^3.23.6":
"@blueprintjs/datetime@^3.23.6":
version "3.23.6"
resolved "https://registry.yarnpkg.com/@blueprintjs/datetime/-/datetime-3.23.6.tgz#5d9588ae4537e87a6d14d765db722b9a2f449d95"
integrity sha512-OACqjo7HQQnEvILj9L/4w0jbM34+aAP8g78eqcOl8E/R+W4U/V9ePBrlcY2eknkgalyueOkx5/0Ee852v5FL/w==
@ -6197,24 +6197,12 @@ depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
"design-system@npm:@appsmithorg/design-system@1.0.36":
version "1.0.36"
resolved "https://registry.yarnpkg.com/@appsmithorg/design-system/-/design-system-1.0.36.tgz#3385278aef96ef87c57b2c8efe8faf66bd1c28e3"
integrity sha512-BgU8hfZTlzRMX6B4vMqHj08/1kc7Ao8gV0KY7zdze+mMWC8WU2am3wEGdSsPD07oiWjhMlZg943qYv/P3fik3A==
"design-system@npm:@appsmithorg/design-system@1.0.37":
version "1.0.37"
resolved "https://registry.yarnpkg.com/@appsmithorg/design-system/-/design-system-1.0.37.tgz#1e38df952bc19b4542407b8b0666e62fd845ff04"
integrity sha512-1y424NBUHyRjSygjLvk9hTu2J+/WxzUFw9QeAjBxqfslvYEopZGCW8Y//nAG2jSKQ0Y1GnRmWmKfC8Px3ijgBA==
dependencies:
"@blueprintjs/datetime" "3.23.6"
copy-to-clipboard "^3.3.1"
emoji-mart "3.0.1"
react-dnd "^9.3.4"
react-dnd-html5-backend "^9.3.4"
react-redux "^7.2.4"
react-router-dom "^6.3.0"
react-table "^7.8.0"
react-tabs "3.1.1"
react-toastify "^5.5.0"
redux-form "8.2.6"
remixicon-react "^1.0.0"
tinycolor2 "^1.4.2"
destroy@1.2.0:
version "1.2.0"
@ -8219,18 +8207,11 @@ history@^4.10.1, history@^4.9.0:
tiny-warning "^1.0.0"
value-equal "^1.0.1"
history@^5.2.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b"
integrity sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==
dependencies:
"@babel/runtime" "^7.7.6"
hoist-non-react-statics@^2.3.1:
version "2.5.5"
resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz"
hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
dependencies:
@ -8485,11 +8466,6 @@ immer@^9.0.7:
resolved "https://registry.npmjs.org/immer/-/immer-9.0.14.tgz"
integrity sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw==
immutable@3.8.2:
version "3.8.2"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3"
integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==
immutable@~3.7.4:
version "3.7.6"
resolved "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz"
@ -9988,7 +9964,7 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash-es@4.17.21, lodash-es@^4.17.15, lodash-es@^4.17.21:
lodash-es@4.17.21, lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
@ -12759,14 +12735,6 @@ react-router-dom@^5.1.2:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-router-dom@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.3.0.tgz#a0216da813454e521905b5fa55e0e5176123f43d"
integrity sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==
dependencies:
history "^5.2.0"
react-router "6.3.0"
react-router@5.2.0, react-router@^5.1.2:
version "5.2.0"
resolved "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz"
@ -12782,13 +12750,6 @@ react-router@5.2.0, react-router@^5.1.2:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-router@6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.3.0.tgz#3970cc64b4cb4eae0c1ea5203a80334fdd175557"
integrity sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==
dependencies:
history "^5.2.0"
react-scripts@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz"
@ -12890,12 +12851,7 @@ react-table@^7.0.0:
version "7.6.0"
resolved "https://registry.npmjs.org/react-table/-/react-table-7.6.0.tgz"
react-table@^7.8.0:
version "7.8.0"
resolved "https://registry.yarnpkg.com/react-table/-/react-table-7.8.0.tgz#07858c01c1718c09f7f1aed7034fcfd7bda907d2"
integrity sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==
react-tabs@3.1.1, react-tabs@^3.0.0:
react-tabs@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.1.1.tgz#b363a239f76046bb2158875a1e5921b11064052f"
integrity sha512-HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==
@ -13092,24 +13048,6 @@ redux-devtools@^3.5.0:
prop-types "^15.7.2"
redux-devtools-instrument "^1.10.0"
redux-form@8.2.6:
version "8.2.6"
resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-8.2.6.tgz#6840bbe9ed5b2aaef9dd82e6db3e5efcfddd69b1"
integrity sha512-krmF7wl1C753BYpEpWIVJ5NM4lUJZFZc5GFUVgblT+jprB99VVBDyBcgrZM3gWWLOcncFyNsHcKNQQcFg8Uanw==
dependencies:
"@babel/runtime" "^7.2.0"
es6-error "^4.1.1"
hoist-non-react-statics "^3.2.1"
invariant "^2.2.4"
is-promise "^2.1.0"
lodash "^4.17.15"
lodash-es "^4.17.15"
prop-types "^15.6.1"
react-is "^16.7.0"
react-lifecycles-compat "^3.0.4"
optionalDependencies:
immutable "3.8.2"
redux-form@^8.2.6:
version "8.3.6"
resolved "https://registry.npmjs.org/redux-form/-/redux-form-8.3.6.tgz"