From 4e2959080b84cc22dbe08d2cfdd80b09253184de Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Fri, 17 Jul 2020 15:19:17 -0700 Subject: [PATCH] refactor: Tag, TagSkeleton - use $$restProps API - add button to filterable variant --- src/components/Tag/Tag.Skeleton.svelte | 15 ++---- src/components/Tag/Tag.Story.svelte | 16 +++++-- src/components/Tag/Tag.stories.js | 44 +++++++++++------ src/components/Tag/Tag.svelte | 65 +++++++++++++++++--------- src/components/Tag/constants.js | 12 ----- src/components/Tag/index.js | 6 +-- 6 files changed, 89 insertions(+), 69 deletions(-) delete mode 100644 src/components/Tag/constants.js diff --git a/src/components/Tag/Tag.Skeleton.svelte b/src/components/Tag/Tag.Skeleton.svelte index 3c1e5daa..30924cd1 100644 --- a/src/components/Tag/Tag.Skeleton.svelte +++ b/src/components/Tag/Tag.Skeleton.svelte @@ -1,15 +1,8 @@ - - + on:mouseleave /> diff --git a/src/components/Tag/Tag.Story.svelte b/src/components/Tag/Tag.Story.svelte index 596ee4ab..b6031b72 100644 --- a/src/components/Tag/Tag.Story.svelte +++ b/src/components/Tag/Tag.Story.svelte @@ -5,19 +5,25 @@ export let story = undefined; export let type = undefined; - import Layout from '../../internal/ui/Layout.svelte'; - import Tag from './Tag.svelte'; - import TagSkeleton from './Tag.Skeleton.svelte'; + import Layout from "../../internal/ui/Layout.svelte"; + import Tag from "./Tag.svelte"; + import TagSkeleton from "./Tag.Skeleton.svelte";
{#if story === 'filter'} - {slot} + { + console.log('click'); + }}> + {slot} + {:else if story === 'skeleton'} {:else} - {slot} + {slot} {/if}
diff --git a/src/components/Tag/Tag.stories.js b/src/components/Tag/Tag.stories.js index 6858b164..16cffe04 100644 --- a/src/components/Tag/Tag.stories.js +++ b/src/components/Tag/Tag.stories.js @@ -1,29 +1,45 @@ -import { withKnobs, select, boolean, text } from '@storybook/addon-knobs'; -import Component from './Tag.Story.svelte'; -import { TYPES } from './constants'; +import { withKnobs, select, boolean, text } from "@storybook/addon-knobs"; +import Component from "./Tag.Story.svelte"; -export default { title: 'Tag', decorators: [withKnobs] }; +export default { title: "Tag", decorators: [withKnobs] }; + +const TYPES = { + red: "Red", + magenta: "Magenta", + purple: "Purple", + blue: "Blue", + cyan: "Cyan", + teal: "Teal", + green: "Green", + gray: "Gray", + "cool-gray": "Cool-Gray", + "warm-gray": "Warm-Gray", + "high-contrast": "High-Contrast", +}; export const Default = () => ({ Component, props: { type: select( - 'Tag type (type)', - Object.keys(TYPES).reduce((items, item) => ({ ...items, [`${item} (${item})`]: item }), {}), - 'red' + "Tag type (type)", + Object.keys(TYPES).reduce( + (items, item) => ({ ...items, [`${item} (${item})`]: item }), + {} + ), + "red" ), - disabled: boolean('Disabled (disabled)', false), - slot: text('Content ($$slot)', 'This is not a tag') - } + disabled: boolean("Disabled (disabled)", false), + slot: text("Content ($$slot)", "This is a tag"), + }, }); export const Filter = () => ({ Component, props: { - story: 'filter', + story: "filter", filter: true, - slot: text('Content ($$slot)', 'This is not a tag') - } + slot: text("Content ($$slot)", "This is a tag"), + }, }); -export const Skeleton = () => ({ Component, props: { story: 'skeleton' } }); +export const Skeleton = () => ({ Component, props: { story: "skeleton" } }); diff --git a/src/components/Tag/Tag.svelte b/src/components/Tag/Tag.svelte index 1af43ab0..7fa869df 100644 --- a/src/components/Tag/Tag.svelte +++ b/src/components/Tag/Tag.svelte @@ -1,28 +1,47 @@ - - {TYPES[type]} - {#if filter} - - {/if} - +{#if filter} +
+ + {type} + + +
+{:else} + + + +{/if} diff --git a/src/components/Tag/constants.js b/src/components/Tag/constants.js deleted file mode 100644 index 84af65cf..00000000 --- a/src/components/Tag/constants.js +++ /dev/null @@ -1,12 +0,0 @@ -export const TYPES = { - red: 'Red', - magenta: 'Magenta', - purple: 'Purple', - blue: 'Blue', - cyan: 'Cyan', - teal: 'Teal', - green: 'Green', - gray: 'Gray', - 'cool-gray': 'Cool-Gray', - 'warm-gray': 'Warm-Gray' -}; diff --git a/src/components/Tag/index.js b/src/components/Tag/index.js index 255b5591..21b86b2c 100644 --- a/src/components/Tag/index.js +++ b/src/components/Tag/index.js @@ -1,4 +1,2 @@ -import Tag from './Tag.svelte'; - -export default Tag; -export { default as TagSkeleton } from './Tag.Skeleton.svelte'; +export { default as Tag } from "./Tag.svelte"; +export { default as TagSkeleton } from "./Tag.Skeleton.svelte";