diff --git a/app/assets/javascripts/vue_shared/components/errors_alert.stories.js b/app/assets/javascripts/vue_shared/components/errors_alert.stories.js deleted file mode 100644 index e23ce665f1714437c253ebdf809642f91f0508d7..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/vue_shared/components/errors_alert.stories.js +++ /dev/null @@ -1,33 +0,0 @@ -import ErrorsAlert from './errors_alert.vue'; - -export default { - component: ErrorsAlert, - title: 'vue_shared/errors_alert', -}; - -const defaultArgs = { - errors: ['The item could not be created.'], -}; - -const Template = (args, { argTypes }) => ({ - components: { ErrorsAlert }, - props: Object.keys(argTypes), - template: ``, -}); - -export const Default = Template.bind({}); -Default.args = { - ...defaultArgs, -}; - -export const ErrorsList = Template.bind({}); -ErrorsList.args = { - ...defaultArgs, - errors: ['The item could not be created.', 'The item could not be updated.'], -}; - -export const WithTitle = Template.bind({}); -WithTitle.args = { - ...defaultArgs, - title: 'Following errors occured:', -}; diff --git a/app/assets/javascripts/vue_shared/components/errors_alert.vue b/app/assets/javascripts/vue_shared/components/errors_alert.vue deleted file mode 100644 index b5dd8a219cfff3349a5e78f8e2ace7c13851d498..0000000000000000000000000000000000000000 --- a/app/assets/javascripts/vue_shared/components/errors_alert.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/app/assets/javascripts/vue_shared/components/status_alert.stories.js b/app/assets/javascripts/vue_shared/components/status_alert.stories.js new file mode 100644 index 0000000000000000000000000000000000000000..1c0765d7b4a4b15f7902726d5c5b08796a6bd51a --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/status_alert.stories.js @@ -0,0 +1,56 @@ +import StatusAlert from './status_alert.vue'; + +export default { + component: StatusAlert, + title: 'vue_shared/status_alert', +}; + +const defaultArgs = { + messages: ['The item could not be created.'], +}; + +const Template = (args, { argTypes }) => ({ + components: { StatusAlert }, + props: Object.keys(argTypes), + template: ``, +}); + +const SlotTemplate = (args, { argTypes }) => ({ + components: { StatusAlert }, + props: Object.keys(argTypes), + template: ` + + ${args.slotContent || ''} + + `, +}); + +export const Default = Template.bind({}); +Default.args = { + ...defaultArgs, +}; + +export const ErrorsList = Template.bind({}); +ErrorsList.args = { + ...defaultArgs, + messages: ['The item could not be created.', 'The item could not be updated.'], +}; + +export const WithTitle = Template.bind({}); +WithTitle.args = { + ...defaultArgs, + variant: 'success', + title: 'Item created successfully', + messages: ['All is well.', "A little more and we're there."], +}; + +export const WithCustomSlotContent = SlotTemplate.bind({}); +WithCustomSlotContent.args = { + title: 'Custom Content Alert using the default Slot', + variant: 'info', + slotContent: ` +
+

You can add any HTML content here through the slot including links.

+
+ `, +}; diff --git a/app/assets/javascripts/vue_shared/components/status_alert.vue b/app/assets/javascripts/vue_shared/components/status_alert.vue new file mode 100644 index 0000000000000000000000000000000000000000..d4d2b157b22c62cee13af3a3503dfa2e17a293d7 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/status_alert.vue @@ -0,0 +1,87 @@ + + + diff --git a/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_agent_form.vue b/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_agent_form.vue index 50c2d73cad00f7e6556b174f2b984e9f6e46d943..9bdf7a47b840515e5c069e67b18b0c6461697b67 100644 --- a/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_agent_form.vue +++ b/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_agent_form.vue @@ -14,7 +14,7 @@ import { AGENT_VISIBILITY_LEVEL_DESCRIPTIONS, } from 'ee/ai/catalog/constants'; import { __, s__ } from '~/locale'; -import ErrorsAlert from '~/vue_shared/components/errors_alert.vue'; +import StatusAlert from '~/vue_shared/components/status_alert.vue'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { AI_CATALOG_AGENTS_ROUTE } from '../router/constants'; import { createFieldValidators } from '../utils'; @@ -25,7 +25,6 @@ import VisibilityLevelRadioGroup from './visibility_level_radio_group.vue'; export default { components: { - ErrorsAlert, AiCatalogFormButtons, FormProjectDropdown, GlButton, @@ -33,6 +32,7 @@ export default { GlFormFields, GlFormTextarea, GlTokenSelector, + StatusAlert, VisibilityLevelRadioGroup, }, mixins: [glFeatureFlagsMixin()], @@ -254,7 +254,7 @@ export default {