fleet/website/assets/js/components/logo-carousel.component.js
Eric c931c33595
Website: Browser compatibility fixes (#18861)
Closes: #18814
Closes: #18821

Changes:
- Updated the animation of the logo-carousel component on Safari v13 and
iOS 13
- Updated the earliest supported version of Opera (v64 » v67)
2024-05-08 17:34:39 -05:00

93 lines
4.5 KiB
JavaScript
Vendored

/**
* <logo-carousel>
* -----------------------------------------------------------------------------
* A row of logos that scroll infinitly to the left.
*
* @type {Component}
*
* -----------------------------------------------------------------------------
*/
parasails.registerComponent('logoCarousel', {
// ╔═╗╦═╗╔═╗╔═╗╔═╗
// ╠═╝╠╦╝║ ║╠═╝╚═╗
// ╩ ╩╚═╚═╝╩ ╚═╝
props: [],
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
data: function (){
return {
isSafariThirteen: bowser.safari && _.startsWith(bowser.version, '13'),
isIosThirteen: bowser.safari && _.startsWith(bowser.version, '13') && bowser.ios,
};
},
// ╦ ╦╔╦╗╔╦╗╦
// ╠═╣ ║ ║║║║
// ╩ ╩ ╩ ╩ ╩╩═╝
template: `
<div purpose="logos" class="mx-auto d-flex flex-row align-items-center">
<div purpose="logo-carousel">
<div purpose="logo-row" class="d-flex flex-row align-items-center" :class="[isIosThirteen ? 'ios-13-scroll-animation' : isSafariThirteen ? 'safari-13-scroll-animation' : '']">
<img alt="Notion logo" src="/images/[email protected]">
<img alt="Pinterest logo" src="/images/[email protected]">
<img alt="Gusto logo" src="/images/[email protected]">
<img alt="Epic Games logo" style="height: 32px" src="/images/[email protected]">
<img alt="Rivian logo" src="/images/[email protected]">
<img alt="Deloitte logo" src="/images/[email protected]">
<img alt="Flywire logo" src="/images/[email protected]">
<img alt="Snowflake logo" src="/images/[email protected]">
<img alt="Uber logo" src="/images/[email protected]">
<img alt="Atlassian logo" src="/images/[email protected]">
<img alt="Toast logo" src="/images/[email protected]">
<img alt="Fastly logo" src="/images/[email protected]">
<img alt="Hashicorp logo" src="/images/[email protected]">
<img alt="Dropbox logo" src="/images/[email protected]">
<img alt="Reddit logo" src="/images/[email protected]">
</div>
<div purpose="logo-row" class="d-flex flex-row align-items-center" :class="[isIosThirteen ? 'ios-13-scroll-animation' : isSafariThirteen ? 'safari-13-scroll-animation' : '']">
<img alt="Notion logo" src="/images/[email protected]">
<img alt="Pinterest logo" src="/images/[email protected]">
<img alt="Gusto logo" src="/images/[email protected]">
<img alt="Epic Games logo" style="height: 32px" src="/images/[email protected]">
<img alt="Rivian logo" src="/images/[email protected]">
<img alt="Deloitte logo" src="/images/[email protected]">
<img alt="Flywire logo" src="/images/[email protected]">
<img alt="Snowflake logo" src="/images/[email protected]">
<img alt="Uber logo" src="/images/[email protected]">
<img alt="Atlassian logo" src="/images/[email protected]">
<img alt="Toast logo" src="/images/[email protected]">
<img alt="Fastly logo" src="/images/[email protected]">
<img alt="Hashicorp logo" src="/images/[email protected]">
<img alt="Dropbox logo" src="/images/[email protected]">
<img alt="Reddit logo" src="/images/[email protected]">
</div>
<div purpose="fade-left"></div>
<div purpose="fade-right"></div>
</div>
</div>
`,
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
beforeMount: function() {
//…
},
mounted: async function(){
//…
},
beforeDestroy: function() {
//…
},
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
methods: {
//…
}
});