Skip to content

Commit

Permalink
Migrate buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
deniskaber committed Mar 13, 2024
1 parent 1f7c00e commit bea1d89
Show file tree
Hide file tree
Showing 13 changed files with 66 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
import ActionButton from "metabase/components/ActionButton";
import TippyPopover from "metabase/components/Popover/TippyPopover";
import ExternalLink from "metabase/core/components/ExternalLink";
import ButtonsS from "metabase/css/components/buttons.module.css";
import { useDispatch } from "metabase/lib/redux";
import MetabaseSettings from "metabase/lib/settings";
import { MetabaseApi } from "metabase/services";
Expand Down Expand Up @@ -93,7 +94,7 @@ function ModelCachingControl({ database }: Props) {
<div>
<ControlContainer>
<ActionButton
className="Button"
className={ButtonsS.Button}
normalText={normalText}
failedText={t`Failed`}
successText={t`Done`}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { t } from "ttag";
import LoadingSpinner from "metabase/components/LoadingSpinner";
import Modal from "metabase/components/Modal";
import FormMessage from "metabase/components/form/FormMessage";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import DatabaseSyncModal from "metabase/databases/containers/DatabaseSyncModal";
import { isSyncCompleted } from "metabase/lib/syncing";
Expand Down Expand Up @@ -78,7 +79,11 @@ export default class DatabaseList extends Component {
{isAdmin && (
<Link
to="/admin/databases/create"
className="Button Button--primary float-right"
className={cx(
ButtonsS.Button,
ButtonsS.ButtonPrimary,
"float-right",
)}
>{t`Add database`}</Link>
)}
<h2 className="PageTitle">{t`Databases`}</h2>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import { t } from "ttag";

import ActionButton from "metabase/components/ActionButton";
import ModalContent from "metabase/components/ModalContent";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";

export default class ObjectRetireModal extends Component {
constructor(props, context) {
Expand Down Expand Up @@ -46,14 +48,14 @@ export default class ObjectRetireModal extends Component {
</div>

<div className="Form-actions ml-auto">
<a className="Button" onClick={this.props.onClose}>
<a className={ButtonsS.Button} onClick={this.props.onClose}>
{t`Cancel`}
</a>
<ActionButton
actionFn={this.handleSubmit.bind(this)}
className={cx("Button ml2", {
"Button--danger": valid,
disabled: !valid,
className={cx(ButtonsS.Button, CS.ml2, {
[ButtonsS.ButtonDanger]: valid,
[CS.disabled]: !valid,
})}
normalText={t`Retire`}
activeText={t`Retiring…`}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
/* eslint-disable react/prop-types */
import cx from "classnames";
import PropTypes from "prop-types";
import { Component } from "react";
import { connect } from "react-redux";
import { t } from "ttag";
import _ from "underscore";

import Link from "metabase/core/components/Link";
import ButtonsS from "metabase/css/components/buttons.module.css";
import Tables from "metabase/entities/tables";
import * as Urls from "metabase/lib/urls";
import { getMetadata } from "metabase/selectors/metadata";
Expand Down Expand Up @@ -101,7 +103,7 @@ class PartialQueryBuilder extends Component {
to={previewUrl}
target={window.OSX ? null : "_blank"}
rel="noopener noreferrer"
className="Button Button--primary"
className={cx(ButtonsS.Button, ButtonsS.ButtonPrimary)}
>{t`Preview`}</Link>
</div>
</GuiQueryEditor>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import cx from "classnames";
import PropTypes from "prop-types";
import { t } from "ttag";

import Modal from "metabase/components/Modal";
import ModalContent from "metabase/components/ModalContent";
import ButtonsS from "metabase/css/components/buttons.module.css";
import MetabaseSettings from "metabase/lib/settings";

import {
Expand Down Expand Up @@ -43,7 +45,7 @@ export function ModelEducationalModal({ isOpen, onClose }) {
<CenteredRow>
<ButtonLink
href={EDUCATION_URL}
className="Button Button--primary"
className={cx(ButtonsS.Button, ButtonsS.ButtonPrimary)}
>{t`Learn how`}</ButtonLink>
</CenteredRow>
</Content>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import cx from "classnames";
import { useCallback, useMemo } from "react";
import { connect } from "react-redux";
import { t } from "ttag";
Expand All @@ -6,6 +7,8 @@ import ActionButton from "metabase/components/ActionButton";
import InputBlurChange from "metabase/components/InputBlurChange";
import type { SelectChangeEvent } from "metabase/core/components/Select/Select";
import Select from "metabase/core/components/Select/Select";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import Fields from "metabase/entities/fields";
import * as MetabaseCore from "metabase/lib/core";
import type Field from "metabase-lib/v1/metadata/Field";
Expand Down Expand Up @@ -335,15 +338,15 @@ const FieldCachedValuesSection = ({
description={t`Metabase can scan the values for this field to enable checkbox filters in dashboards and questions.`}
/>
<ActionButton
className="Button mr2"
className={cx(ButtonsS.Button, CS.mr2)}
actionFn={handleRescanFieldValues}
normalText={t`Re-scan this field`}
activeText={t`Starting…`}
failedText={t`Failed to start scan`}
successText={t`Scan triggered!`}
/>
<ActionButton
className="Button Button--danger"
className={cx(ButtonsS.Button, ButtonsS.ButtonDanger)}
actionFn={handleDiscardFieldValues}
normalText={t`Discard cached field values`}
activeText={t`Starting…`}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import _ from "underscore";

import ActionButton from "metabase/components/ActionButton";
import Breadcrumbs from "metabase/components/Breadcrumbs";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import Databases from "metabase/entities/databases";
import Schemas from "metabase/entities/schemas";
Expand Down Expand Up @@ -110,15 +111,15 @@ const MetadataTableSettings = ({
description={t`Metabase can scan the values in this table to enable checkbox filters in dashboards and questions.`}
/>
<ActionButton
className="Button mr2"
className={cx(ButtonsS.Button, CS.mr2)}
actionFn={handleRescanTableFieldValues}
normalText={t`Re-scan this table`}
activeText={t`Starting…`}
failedText={t`Failed to start scan`}
successText={t`Scan triggered!`}
/>
<ActionButton
className="Button Button--danger"
className={cx(ButtonsS.Button, ButtonsS.ButtonDanger)}
actionFn={handleDiscardTableFieldValues}
normalText={t`Discard cached field values`}
activeText={t`Starting…`}
Expand Down
7 changes: 6 additions & 1 deletion frontend/src/metabase/admin/people/components/AddRow.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import PropTypes from "prop-types";
import { forwardRef } from "react";
import { t } from "ttag";

import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";

export const AddRow = forwardRef(function AddRow(
{
value,
Expand Down Expand Up @@ -35,7 +38,9 @@ export const AddRow = forwardRef(function AddRow(
{t`Cancel`}
</span>
<button
className={cx("Button ml2", { "Button--primary": !!isValid })}
className={cx(ButtonsS.Button, CS.ml2, {
[ButtonsS.ButtonPrimary]: !!isValid,
})}
disabled={!isValid}
onClick={onDone}
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import PopoverWithTrigger from "metabase/components/PopoverWithTrigger";
import UserAvatar from "metabase/components/UserAvatar";
import Input from "metabase/core/components/Input";
import Link from "metabase/core/components/Link";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import * as MetabaseAnalytics from "metabase/lib/analytics";
import { color } from "metabase/lib/colors";
import {
Expand Down Expand Up @@ -167,8 +169,8 @@ function EditingGroupRow({
onClick={onCancelClicked}
>{t`Cancel`}</span>
<button
className={cx("Button ml2", {
"Button--primary": textIsValid && textHasChanged,
className={cx(ButtonsS.Button, CS.ml2, {
[ButtonsS.ButtonPrimary]: textIsValid && textHasChanged,
})}
disabled={!textIsValid || !textHasChanged}
onClick={onDoneClicked}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import cx from "classnames";
import PropTypes from "prop-types";
import { t } from "ttag";

import HostingInfoLink from "metabase/admin/settings/components/widgets/HostingInfoLink";
import Text from "metabase/components/type/Text";
import ExternalLink from "metabase/core/components/ExternalLink";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import { useSelector } from "metabase/lib/redux";
import MetabaseSettings from "metabase/lib/settings";
import { getIsPaidPlan } from "metabase/selectors/settings";
Expand Down Expand Up @@ -77,7 +80,12 @@ function NewVersionAvailable({ currentVersion }) {
{t`You're running ${currentVersion}`}
</span>
<ExternalLink
className="Button Button--white Button--medium borderless"
className={cx(
ButtonsS.Button,
ButtonsS.ButtonWhite,
ButtonsS.ButtonMedium,
CS.borderless,
)}
href={
"https://www.metabase.com/docs/" +
latestVersion +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import LoadingAndErrorWrapper from "metabase/components/LoadingAndErrorWrapper";
import Modal from "metabase/components/Modal";
import { Ellipsified } from "metabase/core/components/Ellipsified";
import Select, { Option } from "metabase/core/components/Select";
import ButtonsS from "metabase/css/components/buttons.module.css";
import CS from "metabase/css/core/index.css";
import { uuid } from "metabase/lib/utils";
import { SettingsApi, GeoJSONApi } from "metabase/services";
import LeafletChoropleth from "metabase/visualizations/components/LeafletChoropleth";
Expand Down Expand Up @@ -145,7 +147,7 @@ export default class CustomGeoJSONWidget extends Component {
<SettingHeader setting={setting} />
{!this.state.map && (
<button
className="Button Button--primary ml1"
className={cx(ButtonsS.Button, ButtonsS.ButtonPrimary, CS.ml1)}
onClick={() =>
this.setState({
map: {
Expand Down Expand Up @@ -234,7 +236,9 @@ const ListMaps = ({ maps, onEditMap, onDeleteMap }) => (
action={() => onDeleteMap(map)}
title={t`Delete custom map`}
>
<button className="Button Button--danger">{t`Remove`}</button>
<button
className={cx(ButtonsS.Button, ButtonsS.ButtonDanger)}
>{t`Remove`}</button>
</Confirm>
</td>
</tr>
Expand Down Expand Up @@ -343,9 +347,9 @@ const EditMap = ({
onChange={e => onMapChange({ ...map, url: e.target.value })}
/>
<button
className={cx("Button ml1", {
"Button--primary": !geoJson,
disabled: !map.url,
className={cx(ButtonsS.Button, CS.ml1, {
[ButtonsS.ButtonPrimary]: !geoJson,
[CS.disabled]: !map.url,
})}
onClick={onLoadGeoJson}
>
Expand Down Expand Up @@ -382,7 +386,7 @@ const EditMap = ({
error={geoJsonError}
>
{() => (
<div className="spread relative">
<div className={cx(CS.spread, CS.relative)}>
<ChoroplethPreview geoJson={geoJson} />
</div>
)}
Expand All @@ -397,12 +401,12 @@ const EditMap = ({
<div className="py1 flex">
<div className="ml-auto">
<button
className={cx("Button Button")}
className={ButtonsS.Button}
onClick={onCancel}
>{t`Cancel`}</button>
<button
className={cx("Button Button--primary ml1", {
disabled:
className={cx(ButtonsS.Button, ButtonsS.ButtonPrimary, CS.ml1, {
[CS.disabled]:
!map.name || !map.url || !map.region_name || !map.region_key,
})}
onClick={onSave}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import cx from "classnames";
import { t } from "ttag";

import ButtonsS from "metabase/css/components/buttons.module.css";

import { LinkIcon, LinkRoot, LinkText } from "./SlackAppsLink.styled";

export interface SlackAppsLinkProps {
Expand All @@ -13,7 +16,7 @@ const SlackAppsLink = ({ manifest }: SlackAppsLinkProps): JSX.Element => {

return (
<LinkRoot
className="Button Button--primary"
className={cx(ButtonsS.Button, ButtonsS.ButtonPrimary)}
href={`https://api.slack.com${link}`}
>
<LinkText>{t`Create Slack App`}</LinkText>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import _ from "underscore";
import ModalContent from "metabase/components/ModalContent";
import Button from "metabase/core/components/Button";
import Link from "metabase/core/components/Link";
import ButtonsS from "metabase/css/components/buttons.module.css";
import PersistedModels from "metabase/entities/persisted-models";
import type { ModelCacheRefreshStatus } from "metabase-types/api";

Expand Down Expand Up @@ -69,7 +70,7 @@ function ModelCacheRefreshJobModal({
>{t`Retry now`}</Button>,
<Link
key="edit"
className="Button"
className={ButtonsS.Button}
to={`/model/${persistedModel.card_id}/query`}
>{t`Edit model`}</Link>,
];
Expand Down

0 comments on commit bea1d89

Please sign in to comment.