mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-30 18:03:48 +08:00
The work to build a new unified toolbar has been deprioritised and no one is using this variant, so let's remove it to avoid confusion. We can always restore it in the future if we need to. Bug: none Change-Id: I7a6c8f1f9b7e66b509fa4ef08c30186b06d9949d Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4037665 Commit-Queue: Andres Olivares <andoli@chromium.org> Auto-Submit: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Andres Olivares <andoli@chromium.org>
352 lines
11 KiB
TypeScript
352 lines
11 KiB
TypeScript
// Copyright 2021 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import * as FrontendHelpers from '../../../../../test/unittests/front_end/helpers/EnvironmentHelpers.js';
|
|
import * as Buttons from '../../buttons/buttons.js';
|
|
import * as ComponentHelpers from '../../helpers/helpers.js';
|
|
|
|
await ComponentHelpers.ComponentServerSetup.setup();
|
|
await FrontendHelpers.initializeGlobalVars();
|
|
|
|
const testIcon = '/front_end/Images/ic_file_image.svg';
|
|
const fileIcon = '/front_end/Images/file_icon.svg';
|
|
const plusIcon = '/front_end/Images/plus_icon.svg';
|
|
const minusIcon = '/front_end/Images/minus_icon.svg';
|
|
const trashBinIcon = '/front_end/Images/trash_bin_icon.svg';
|
|
const closeIcon = '/front_end/Images/close-icon.svg';
|
|
|
|
function appendButton(button: Buttons.Button.Button): void {
|
|
document.querySelector('#container')?.appendChild(button);
|
|
}
|
|
|
|
function appendToToolbar(element: HTMLElement): void {
|
|
document.querySelector('#toolbar')?.appendChild(element);
|
|
}
|
|
|
|
function appendToSmallToolbar(element: HTMLElement): void {
|
|
document.querySelector('#small-toolbar')?.appendChild(element);
|
|
}
|
|
|
|
// Primary
|
|
const primaryButton = new Buttons.Button.Button();
|
|
primaryButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
};
|
|
primaryButton.innerText = 'Click me';
|
|
primaryButton.title = 'Custom title';
|
|
primaryButton.onclick = () => alert('clicked');
|
|
appendButton(primaryButton);
|
|
|
|
const primaryButtonWithoutRightBorderRadius = new Buttons.Button.Button();
|
|
primaryButtonWithoutRightBorderRadius.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
};
|
|
primaryButtonWithoutRightBorderRadius.style.setProperty('--override-button-no-right-border-radius', '1');
|
|
primaryButtonWithoutRightBorderRadius.innerText = 'No right border radius';
|
|
primaryButtonWithoutRightBorderRadius.title = 'Custom title';
|
|
primaryButtonWithoutRightBorderRadius.onclick = () => alert('clicked');
|
|
appendButton(primaryButtonWithoutRightBorderRadius);
|
|
|
|
// Primary (forced active)
|
|
const forcedActive = new Buttons.Button.Button();
|
|
forcedActive.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
active: true,
|
|
};
|
|
forcedActive.innerText = 'Forced active';
|
|
forcedActive.onclick = () => alert('clicked');
|
|
appendButton(forcedActive);
|
|
|
|
// Primary (forced spinner)
|
|
const forcedSpinner = new Buttons.Button.Button();
|
|
forcedSpinner.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
spinner: true,
|
|
};
|
|
forcedSpinner.innerText = 'Forced spinner';
|
|
forcedSpinner.onclick = () => alert('clicked');
|
|
appendButton(forcedSpinner);
|
|
|
|
// Secondary
|
|
const secondaryButton = new Buttons.Button.Button();
|
|
secondaryButton.innerText = 'Click me';
|
|
secondaryButton.onclick = () => alert('clicked');
|
|
secondaryButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
};
|
|
appendButton(secondaryButton);
|
|
|
|
// Secondary spinner
|
|
const secondarySpinnerButton = new Buttons.Button.Button();
|
|
secondarySpinnerButton.innerText = 'Click me';
|
|
secondarySpinnerButton.onclick = () => alert('clicked');
|
|
secondarySpinnerButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
spinner: true,
|
|
};
|
|
appendButton(secondarySpinnerButton);
|
|
|
|
// Primary
|
|
const disabledPrimaryButtons = new Buttons.Button.Button();
|
|
disabledPrimaryButtons.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
disabled: true,
|
|
};
|
|
disabledPrimaryButtons.innerText = 'Cannot click me';
|
|
disabledPrimaryButtons.onclick = () => alert('clicked');
|
|
appendButton(disabledPrimaryButtons);
|
|
|
|
// Primary spinner
|
|
const disabledSpinnerPrimaryButtons = new Buttons.Button.Button();
|
|
disabledSpinnerPrimaryButtons.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
disabled: true,
|
|
spinner: true,
|
|
};
|
|
disabledSpinnerPrimaryButtons.innerText = 'Cannot click me';
|
|
disabledSpinnerPrimaryButtons.onclick = () => alert('clicked');
|
|
appendButton(disabledSpinnerPrimaryButtons);
|
|
|
|
// Secondary
|
|
const disabledSecondaryButton = new Buttons.Button.Button();
|
|
disabledSecondaryButton.innerText = 'Cannot click me';
|
|
disabledSecondaryButton.onclick = () => alert('clicked');
|
|
disabledSecondaryButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
disabled: true,
|
|
};
|
|
appendButton(disabledSecondaryButton);
|
|
|
|
// Secondary spinner
|
|
const disabledSpinnerSecondaryButton = new Buttons.Button.Button();
|
|
disabledSpinnerSecondaryButton.innerText = 'Cannot click me';
|
|
disabledSpinnerSecondaryButton.onclick = () => alert('clicked');
|
|
disabledSpinnerSecondaryButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
disabled: true,
|
|
spinner: true,
|
|
};
|
|
appendButton(disabledSpinnerSecondaryButton);
|
|
|
|
// Primary Icon
|
|
const primaryIconButton = new Buttons.Button.Button();
|
|
primaryIconButton.innerText = 'Click me';
|
|
primaryIconButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
iconUrl: testIcon,
|
|
};
|
|
primaryIconButton.onclick = () => alert('clicked');
|
|
appendButton(primaryIconButton);
|
|
|
|
// Secondary Icon
|
|
const secondaryIconButton = new Buttons.Button.Button();
|
|
secondaryIconButton.innerText = 'Focus the first button';
|
|
secondaryIconButton.onclick = () => {
|
|
primaryButton.focus();
|
|
};
|
|
secondaryIconButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
iconUrl: testIcon,
|
|
};
|
|
appendButton(secondaryIconButton);
|
|
|
|
// Primary Icon Only
|
|
const primaryIconOnlyButton = new Buttons.Button.Button();
|
|
primaryIconOnlyButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
iconUrl: testIcon,
|
|
};
|
|
primaryIconOnlyButton.onclick = () => alert('clicked');
|
|
primaryIconOnlyButton.style.width = '24px';
|
|
appendButton(primaryIconOnlyButton);
|
|
|
|
// Secondary Icon Only
|
|
const secondaryIconOnlyButton = new Buttons.Button.Button();
|
|
secondaryIconOnlyButton.onclick = () => alert('clicked');
|
|
secondaryIconOnlyButton.style.width = '24px';
|
|
secondaryIconOnlyButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
iconUrl: testIcon,
|
|
};
|
|
appendButton(secondaryIconOnlyButton);
|
|
|
|
// Small Primary Icon
|
|
const smallPrimaryIconButton = new Buttons.Button.Button();
|
|
smallPrimaryIconButton.innerText = 'Click me';
|
|
smallPrimaryIconButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
iconUrl: testIcon,
|
|
size: Buttons.Button.Size.SMALL,
|
|
};
|
|
smallPrimaryIconButton.onclick = () => alert('clicked');
|
|
appendButton(smallPrimaryIconButton);
|
|
|
|
// Small Secondary Icon Only
|
|
const smallSecondaryIconOnlyButton = new Buttons.Button.Button();
|
|
smallSecondaryIconOnlyButton.onclick = () => alert('clicked');
|
|
smallSecondaryIconOnlyButton.style.width = '18px';
|
|
smallSecondaryIconOnlyButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
iconUrl: testIcon,
|
|
size: Buttons.Button.Size.SMALL,
|
|
};
|
|
appendButton(smallSecondaryIconOnlyButton);
|
|
|
|
// Disabled Primary Icon
|
|
const disabledPrimaryIconButton = new Buttons.Button.Button();
|
|
disabledPrimaryIconButton.innerText = 'Cannot click me';
|
|
disabledPrimaryIconButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
iconUrl: testIcon,
|
|
size: Buttons.Button.Size.SMALL,
|
|
disabled: true,
|
|
};
|
|
disabledPrimaryIconButton.onclick = () => alert('clicked');
|
|
appendButton(disabledPrimaryIconButton);
|
|
|
|
// Small Disabled Secondary Icon Only
|
|
const disabledSecondaryIconOnlyButton = new Buttons.Button.Button();
|
|
disabledSecondaryIconOnlyButton.onclick = () => alert('clicked');
|
|
disabledSecondaryIconOnlyButton.style.width = '18px';
|
|
disabledSecondaryIconOnlyButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
iconUrl: testIcon,
|
|
size: Buttons.Button.Size.SMALL,
|
|
disabled: true,
|
|
};
|
|
appendButton(disabledSecondaryIconOnlyButton);
|
|
|
|
// Round Button
|
|
const roundButton = new Buttons.Button.Button();
|
|
roundButton.data = {
|
|
variant: Buttons.Button.Variant.ROUND,
|
|
iconUrl: testIcon,
|
|
};
|
|
roundButton.title = 'Round Button';
|
|
roundButton.onclick = () => alert('clicked');
|
|
appendButton(roundButton);
|
|
|
|
// Disabled Round Button
|
|
const roundButtonDisabled = new Buttons.Button.Button();
|
|
roundButtonDisabled.data = {
|
|
variant: Buttons.Button.Variant.ROUND,
|
|
iconUrl: testIcon,
|
|
disabled: true,
|
|
};
|
|
roundButtonDisabled.title = 'Disabled Round Button';
|
|
roundButtonDisabled.onclick = () => alert('clicked');
|
|
appendButton(roundButtonDisabled);
|
|
|
|
// Small Round Buttons
|
|
const roundIcons = [
|
|
{iconUrl: testIcon},
|
|
{iconUrl: fileIcon, iconWidth: '16px', iconHeight: '16px'},
|
|
{iconUrl: plusIcon},
|
|
{iconUrl: minusIcon},
|
|
{iconUrl: trashBinIcon, iconWidth: '10px', iconHeight: '14px'},
|
|
{iconUrl: closeIcon, iconWidth: '10px', iconHeight: '10px'},
|
|
];
|
|
for (const roundIcon of roundIcons) {
|
|
const smallRoundButton = new Buttons.Button.Button();
|
|
smallRoundButton.data = {
|
|
variant: Buttons.Button.Variant.ROUND,
|
|
size: Buttons.Button.Size.SMALL,
|
|
...roundIcon,
|
|
};
|
|
smallRoundButton.title = 'Small Round Button';
|
|
smallRoundButton.onclick = () => alert('clicked');
|
|
appendButton(smallRoundButton);
|
|
}
|
|
|
|
// Tiny Round Buttons
|
|
const tinyRoundIcons = [
|
|
{iconUrl: plusIcon},
|
|
{iconUrl: minusIcon},
|
|
{iconUrl: closeIcon, iconWidth: '9px', iconHeight: '9px'},
|
|
];
|
|
for (const roundIcon of tinyRoundIcons) {
|
|
const tinyRoundButton = new Buttons.Button.Button();
|
|
tinyRoundButton.data = {
|
|
variant: Buttons.Button.Variant.ROUND,
|
|
size: Buttons.Button.Size.TINY,
|
|
...roundIcon,
|
|
};
|
|
tinyRoundButton.title = 'Tiny Round Button';
|
|
tinyRoundButton.onclick = () => alert('clicked');
|
|
appendButton(tinyRoundButton);
|
|
}
|
|
|
|
// Small Disabled Round Button
|
|
const smallRoundButtonDisabled = new Buttons.Button.Button();
|
|
smallRoundButtonDisabled.data = {
|
|
variant: Buttons.Button.Variant.ROUND,
|
|
iconUrl: testIcon,
|
|
disabled: true,
|
|
size: Buttons.Button.Size.SMALL,
|
|
};
|
|
smallRoundButtonDisabled.title = 'Small Disabled Round Button';
|
|
smallRoundButtonDisabled.onclick = () => alert('clicked');
|
|
appendButton(smallRoundButtonDisabled);
|
|
|
|
for (let i = 0; i < 6; i++) {
|
|
// Regular Toolbar Button
|
|
const toolbarButton = new Buttons.Button.Button();
|
|
toolbarButton.onclick = () => alert('clicked');
|
|
toolbarButton.data = {
|
|
variant: Buttons.Button.Variant.TOOLBAR,
|
|
iconUrl: testIcon,
|
|
};
|
|
appendToToolbar(toolbarButton);
|
|
if (i % 3 === 1) {
|
|
const sep = document.createElement('div');
|
|
sep.classList.add('separator');
|
|
appendToToolbar(sep);
|
|
}
|
|
}
|
|
|
|
// Disabled Toolbar Button
|
|
const toolbarButton = new Buttons.Button.Button();
|
|
toolbarButton.onclick = () => alert('clicked');
|
|
toolbarButton.data = {
|
|
variant: Buttons.Button.Variant.TOOLBAR,
|
|
iconUrl: testIcon,
|
|
disabled: true,
|
|
};
|
|
appendToToolbar(toolbarButton);
|
|
|
|
for (let i = 0; i < 6; i++) {
|
|
// Small Toolbar Button
|
|
const smallToolbarButton = new Buttons.Button.Button();
|
|
smallToolbarButton.onclick = () => alert('clicked');
|
|
smallToolbarButton.data = {
|
|
variant: Buttons.Button.Variant.TOOLBAR,
|
|
size: Buttons.Button.Size.SMALL,
|
|
iconUrl: testIcon,
|
|
};
|
|
appendToSmallToolbar(smallToolbarButton);
|
|
if (i % 3 === 1) {
|
|
const sep = document.createElement('div');
|
|
sep.classList.add('separator');
|
|
appendToSmallToolbar(sep);
|
|
}
|
|
}
|
|
|
|
// Submit Button
|
|
const submitButton = new Buttons.Button.Button();
|
|
submitButton.data = {
|
|
variant: Buttons.Button.Variant.PRIMARY,
|
|
type: 'submit',
|
|
};
|
|
submitButton.innerText = 'Submit';
|
|
document.querySelector('#form')?.append(submitButton);
|
|
|
|
// Reset Button
|
|
const resetButton = new Buttons.Button.Button();
|
|
resetButton.data = {
|
|
variant: Buttons.Button.Variant.SECONDARY,
|
|
type: 'reset',
|
|
};
|
|
resetButton.innerText = 'Reset';
|
|
document.querySelector('#form')?.append(resetButton);
|