Merge pull request #904 from Safelite/defect/digital/SSR-1924

SSR-1924 Fix custom client loader color
This commit is contained in:
Josh Dassinger 2024-11-27 12:11:38 -06:00 committed by GitHub
commit 3ecacd5b13
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 24 additions and 78 deletions

View file

@ -18,7 +18,6 @@
ref="buttonMain" ref="buttonMain"
isPrimary isPrimary
:buttonText="buttonText" :buttonText="buttonText"
loaderColor="white"
:class=" :class="
(disableForwardAction || isForwardActionDisabled) && (disableForwardAction || isForwardActionDisabled) &&
'form-test-invalid' 'form-test-invalid'

View file

@ -184,7 +184,6 @@ describe('tpa-submit', () => {
// Assert // Assert
expect(mainButton.exists()).toBeTruthy(); expect(mainButton.exists()).toBeTruthy();
expect(mainButton.props().isPrimary).toBe(true); expect(mainButton.props().isPrimary).toBe(true);
expect(mainButton.props().loaderColor).toBe('white');
expect(mainButton.classes()).toContain('w-100'); expect(mainButton.classes()).toContain('w-100');
expect(mainButton.classes()).toContain('mb-5'); expect(mainButton.classes()).toContain('mb-5');
}); });

View file

@ -12,6 +12,9 @@
$button-text-color: #181643; $button-text-color: #181643;
$svg-fill-color: '%2309748b'; // Color of calendar icon. Place HEX code *after* %23 $svg-fill-color: '%2309748b'; // Color of calendar icon. Place HEX code *after* %23
//Variables
--iss-loader-color: #{$button-text-color};
.site-header { .site-header {
background-color: $header-background; background-color: $header-background;
} }
@ -47,12 +50,6 @@
} }
} }
.loader {
&:after {
background-color: $button-text-color;
}
}
} }
&.modal-open { &.modal-open {
@ -100,6 +97,9 @@
$button-text-color: #fff; $button-text-color: #fff;
$svg-fill-color: '%231574a1'; // Color of calendar icon. Place HEX code *after* %23 $svg-fill-color: '%231574a1'; // Color of calendar icon. Place HEX code *after* %23
//Variables
--iss-loader-color: #{$button-text-color};
.site-header { .site-header {
background-color: $header-background; background-color: $header-background;
} }
@ -137,12 +137,6 @@
} }
} }
.loader {
&:after {
background-color: $button-text-color;
}
}
} }
&.modal-open { &.modal-open {
@ -190,6 +184,9 @@
$button-text-color: #fff; $button-text-color: #fff;
$svg-fill-color: '%231c57a5'; // Color of calendar icon. Place HEX code *after* %23 $svg-fill-color: '%231c57a5'; // Color of calendar icon. Place HEX code *after* %23
//Variables
--iss-loader-color: #{$button-text-color};
.site-header { .site-header {
background-color: $header-background; background-color: $header-background;
} }
@ -225,12 +222,6 @@
} }
} }
.loader {
&:after {
background-color: $button-text-color;
}
}
} }
&.modal-open { &.modal-open {
@ -278,6 +269,9 @@
$button-text-color: #fff; $button-text-color: #fff;
$svg-fill-color: '%23007a3e'; // Color of calendar icon. Place HEX code *after* %23 $svg-fill-color: '%23007a3e'; // Color of calendar icon. Place HEX code *after* %23
//Variables
--iss-loader-color: #{$button-text-color};
.site-header { .site-header {
background-color: $header-background; background-color: $header-background;
} }
@ -313,12 +307,6 @@
} }
} }
.loader {
&:after {
background-color: $button-text-color;
}
}
} }
&.modal-open { &.modal-open {
@ -366,6 +354,9 @@
$button-text-color: #fff; $button-text-color: #fff;
$svg-fill-color: '%23007395'; // Color of calendar icon. Place HEX code *after* %23 $svg-fill-color: '%23007395'; // Color of calendar icon. Place HEX code *after* %23
//Variables
--iss-loader-color: #{$button-text-color};
.site-header { .site-header {
background-color: $header-background; background-color: $header-background;
} }
@ -401,12 +392,6 @@
} }
} }
.loader {
&:after {
background-color: $button-text-color;
}
}
} }
&.modal-open { &.modal-open {

View file

@ -125,3 +125,7 @@ body {
} }
} }
} }
:root {
--iss-loader-color: white;
}

View file

@ -49,29 +49,6 @@ describe('buttonMain.vue', () => {
expect(button.attributes()['aria-disabled']).toEqual('true'); expect(button.attributes()['aria-disabled']).toEqual('true');
}); });
it('Should return loader color', async () => {
// Act
const wrapper = shallowMount(
buttonMain,
setupMocks({
propsData: {
loaderColor: 'blue',
loaderEnabled: true
}
})
);
// Assert
wrapper.vm.clicked();
await nextTick();
const loader = wrapper.find('loader-stub');
expect(loader.attributes('class')).toContain('blue');
});
it('Should return loader position', async () => { it('Should return loader position', async () => {
// Act // Act
const wrapper = shallowMount( const wrapper = shallowMount(

View file

@ -12,7 +12,7 @@
<loader <loader
v-if="isLoaderDisplayed && !suppressLoader" v-if="isLoaderDisplayed && !suppressLoader"
class="ms-2" class="ms-2"
:class="[loaderColor, loaderPosition]" /> :class="[loaderPosition]" />
</button> </button>
</template> </template>
@ -28,7 +28,6 @@ export default {
isPrimary: Boolean, isPrimary: Boolean,
buttonText: String, buttonText: String,
isDisabled: Boolean, isDisabled: Boolean,
loaderColor: String,
loaderPosition: String, loaderPosition: String,
isFloat: Boolean, isFloat: Boolean,
suppressLoader: Boolean suppressLoader: Boolean
@ -69,8 +68,8 @@ export default {
@media (hover: hover) { @media (hover: hover) {
background: linear-gradient(270deg, $blue 0%, $blue-800 100%); background: linear-gradient(270deg, $blue 0%, $blue-800 100%);
} }
// Mouse, touch, stylus focus // Mouse, touch, stylus focus
&:focus-visible { &:focus-visible {
// Keyboard focus for accessibility // Keyboard focus for accessibility
outline: none; outline: none;
box-shadow: 0 0 0 3px, 0 0 0 5.5px $blue-700; box-shadow: 0 0 0 3px, 0 0 0 5.5px $blue-700;
@ -112,7 +111,7 @@ export default {
@include blue-gradient; @include blue-gradient;
} }
&:focus, // Mouse, touch, stylus focus &:focus, // Mouse, touch, stylus focus
&:focus-visible { &:focus-visible {
// Keyboard focus for accessibility // Keyboard focus for accessibility
outline: none; outline: none;
box-shadow: 0 0 0 3px $white, 0 0 0 5.5px $blue-700; box-shadow: 0 0 0 3px $white, 0 0 0 5.5px $blue-700;

View file

@ -21,10 +21,6 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
/* Color options: red, green, blue, white, black */
loaderColor: {
type: String
},
/* Position options: center, right, left (OPTIONAL, do NOT use on btn-* classes) */ /* Position options: center, right, left (OPTIONAL, do NOT use on btn-* classes) */
loaderPosition: { loaderPosition: {
type: String type: String
@ -112,20 +108,7 @@ export default {
} }
//Spinner color //Spinner color
&:after { &:after {
//Default spinner color (blue) if no other color is specified from the options below background-color: var(--iss-loader-color);
background-color: $blue;
}
&.red:after {
background-color: $red;
}
&.green:after {
background-color: $green;
}
&.white:after {
background-color: $white;
}
&.black:after {
background-color: $black;
} }
} }
</style> </style>