From 49ffdc17c1daa5447b74171f78ab46f96b3ab0dc Mon Sep 17 00:00:00 2001 From: Zack Krida Date: Wed, 24 Nov 2021 20:48:09 -0500 Subject: [PATCH 01/17] init --- .../VLogoLoader/VLogoLoader.types.js | 14 ++++ src/components/VLogoLoader/VLogoLoader.vue | 68 +++++++++++++++++++ .../VLogoLoader/meta/VLogoLoader.stories.js | 33 +++++++++ 3 files changed, 115 insertions(+) create mode 100644 src/components/VLogoLoader/VLogoLoader.types.js create mode 100644 src/components/VLogoLoader/VLogoLoader.vue create mode 100644 src/components/VLogoLoader/meta/VLogoLoader.stories.js diff --git a/src/components/VLogoLoader/VLogoLoader.types.js b/src/components/VLogoLoader/VLogoLoader.types.js new file mode 100644 index 0000000000..9d7a9a506f --- /dev/null +++ b/src/components/VLogoLoader/VLogoLoader.types.js @@ -0,0 +1,14 @@ +export const propTypes = { + status: { + type: /** @type {'loading'|'idle'} */ String, + default: 'idle', + required: false, + }, + /** The string to announce when the loading state is active. Should be localized. */ + loadingLabel: { + type: String, + required: true, + }, +} + +/** @typedef {import('@nuxtjs/composition-api').ExtractPropTypes} Props */ diff --git a/src/components/VLogoLoader/VLogoLoader.vue b/src/components/VLogoLoader/VLogoLoader.vue new file mode 100644 index 0000000000..d06bb8d04f --- /dev/null +++ b/src/components/VLogoLoader/VLogoLoader.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/components/VLogoLoader/meta/VLogoLoader.stories.js b/src/components/VLogoLoader/meta/VLogoLoader.stories.js new file mode 100644 index 0000000000..f56e156015 --- /dev/null +++ b/src/components/VLogoLoader/meta/VLogoLoader.stories.js @@ -0,0 +1,33 @@ +import VLogoLoader from '~/components/VLogoLoader/VLogoLoader.vue' + +export default { + component: VLogoLoader, + title: 'Components/VLogoLoader', + argTypes: { + status: { + default: 'idle', + options: ['loading', 'idle'], + control: { type: 'radio' }, + }, + loadingLabel: { + control: { type: 'text' }, + }, + }, +} + +const SingleLoaderStory = (_, { argTypes }) => ({ + props: Object.keys(argTypes), + template: ` +
+ +
+ `, + components: { VLogoLoader }, + setup() {}, +}) + +export const Default = SingleLoaderStory.bind({}) +Default.args = { + status: 'idle', + loadingLabel: 'Loading images', +} From bdb85ad10c78c21588018ba8e63c1f58e22bd273 Mon Sep 17 00:00:00 2001 From: Zack Krida Date: Wed, 24 Nov 2021 21:09:46 -0500 Subject: [PATCH 02/17] Reduced motion support and basic state management --- src/components/VLogoLoader/VLogoLoader.vue | 27 ++++++++++++++++- src/composables/use-event-listener.js | 33 ++++++++++++++++++++ src/composables/use-media-query.js | 35 ++++++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/composables/use-event-listener.js create mode 100644 src/composables/use-media-query.js diff --git a/src/components/VLogoLoader/VLogoLoader.vue b/src/components/VLogoLoader/VLogoLoader.vue index d06bb8d04f..11db32f6e5 100644 --- a/src/components/VLogoLoader/VLogoLoader.vue +++ b/src/components/VLogoLoader/VLogoLoader.vue @@ -1,7 +1,12 @@