woocommerce/plugins/woocommerce-blocks/assets/js/base/components/spinner/style.scss

38 lines
799 B
SCSS
Raw Normal View History

Update Express Payments Loading UI (https://github.com/woocommerce/woocommerce-blocks/pull/4228) * Separate button spinner to separate component for reuse * Use block checkout spinner in loading mask * Block pointer events within loading mask * Give the useRef within useShallowEqual a default value This prevents the potential of having an undefined value returned. * State setter and dispatch are stable These do not need to be used as dependencies. * Prevent re-renders of children when using loading mask. This prevents children being rerendered and losing state. Loading styles are applied instead using a classname, but leaving the divs in place. * Use memoization to to prevent excessive express payment rerenders * Wrap express payment in loading mask * Show loading state after submission * remove eslint exclusion * Move spinner to base components so it's available outside of the checkout package * Avoid extra is-loading classname * Update snaps/fix tests * Remove memorization of payment method content due to stale data * Express payment error handling * Split up payment method context to make it more manageable * Add blocking logic to cart * Update snap * Restore useRef * Fix missing function removed by accident * Fix setActivePaymentMethod and started status (so saved methods still allow express to be initialized) * Loading Mask Todo * Remove boolean shallow equals * Missing dep * Memoize typo * Document changes in useStoreEvents * Replace expressPaymentMethodActive * setExpressPaymentError deprecation * Only change status if an error is passed * Track disabled state via useCheckoutSubmit * useCallback on error message functions * Fix mocks in test
2021-06-16 12:44:40 +00:00
.wc-block-components-spinner {
position: absolute;
width: 100%;
height: 100%;
color: inherit;
box-sizing: content-box;
text-align: center;
font-size: 1.25em;
&::after {
content: " ";
position: absolute;
top: 50%;
left: 50%;
margin: -0.5em 0 0 -0.5em;
width: 1em;
height: 1em;
box-sizing: border-box;
transform-origin: 50% 50%;
transform: translateZ(0) scale(0.5);
backface-visibility: hidden;
border-radius: 50%;
border: 0.2em solid currentColor;
border-left-color: transparent;
animation: wc-block-components-spinner__animation 1s infinite linear;
}
}
@keyframes wc-block-components-spinner__animation {
0% {
animation-timing-function: cubic-bezier(0.5856, 0.0703, 0.4143, 0.9297);
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}