Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[196] Add infinite sliding left discount banner #241

Closed
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .frsh/tailwind.css

Large diffs are not rendered by default.

111 changes: 57 additions & 54 deletions live.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,35 @@

import config from "./deno.json" assert { type: "json" };
import { DecoManifest } from "$live/types.ts";
import * as $$$$0 from "./routes/styles.css.ts";
import * as $$$$1 from "./routes/_app.tsx";
import * as $$$$$0 from "./islands/Newsletter.tsx";
import * as $$$$$1 from "./islands/WishlistButton.tsx";
import * as $$$$$2 from "./islands/ShippingSimulation.tsx";
import * as $$$$$3 from "./islands/HeaderSearchbar.tsx";
import * as $$$$$4 from "./islands/HeaderButton.tsx";
import * as $$$$$5 from "./islands/AddToCartButton.tsx";
import * as $$$$$6 from "./islands/HeaderModals.tsx";
import * as $$$$$7 from "./islands/SliderJS.tsx";
import * as $$$$$8 from "./islands/ProductImageZoom.tsx";
import * as $$$$$9 from "./islands/OutOfStock.tsx";
import * as $$$$$10 from "./islands/SearchControls.tsx";
import * as $$$$$$$$0 from "./sections/WishlistGallery.tsx";
import * as $$$$$$$$1 from "./sections/LinkTree.tsx";
import * as $$$$$$$$2 from "./sections/Features.tsx";
import * as $$$$$$$$3 from "./sections/BannerPLP.tsx";
import * as $$$$$$$$4 from "./sections/BannerGrid.tsx";
import * as $$$$$$$$5 from "./sections/SearchResult.tsx";
import * as $$$$$$$$6 from "./sections/ProductShelf.tsx";
import * as $$$$$$$$7 from "./sections/Footer.tsx";
import * as $$$$$$$$8 from "./sections/CookieConsent.tsx";
import * as $$$$$$$$9 from "./sections/DesignSystem.tsx";
import * as $$$$$$$$10 from "./sections/Header.tsx";
import * as $$$$$$$$11 from "./sections/ProductDetails.tsx";
import * as $$$$$$$$12 from "./sections/Highlights.tsx";
import * as $$$$0 from "./routes/_app.tsx";
import * as $$$$1 from "./routes/styles.css.ts";
import * as $$$$$0 from "./islands/SliderJS.tsx";
import * as $$$$$1 from "./islands/AddToCartButton.tsx";
import * as $$$$$2 from "./islands/HeaderButton.tsx";
import * as $$$$$3 from "./islands/ShippingSimulation.tsx";
import * as $$$$$4 from "./islands/HeaderModals.tsx";
import * as $$$$$5 from "./islands/HeaderSearchbar.tsx";
import * as $$$$$6 from "./islands/Newsletter.tsx";
import * as $$$$$7 from "./islands/SearchControls.tsx";
import * as $$$$$8 from "./islands/OutOfStock.tsx";
import * as $$$$$9 from "./islands/WishlistButton.tsx";
import * as $$$$$10 from "./islands/ProductImageZoom.tsx";
import * as $$$$$$$$0 from "./sections/BannerGrid.tsx";
import * as $$$$$$$$1 from "./sections/WishlistGallery.tsx";
import * as $$$$$$$$2 from "./sections/BannerPLP.tsx";
import * as $$$$$$$$3 from "./sections/ProductShelf.tsx";
import * as $$$$$$$$4 from "./sections/SearchResult.tsx";
import * as $$$$$$$$5 from "./sections/CookieConsent.tsx";
import * as $$$$$$$$6 from "./sections/DiscountBanner/DiscountBanner.capyvarias.tsx";
import * as $$$$$$$$7 from "./sections/LinkTree.tsx";
import * as $$$$$$$$8 from "./sections/ProductDetails.tsx";
import * as $$$$$$$$9 from "./sections/Carousel.tsx";
import * as $$$$$$$$10 from "./sections/Footer.tsx";
import * as $$$$$$$$11 from "./sections/Highlights.tsx";
import * as $$$$$$$$12 from "./sections/Features.tsx";
import * as $$$$$$$$13 from "./sections/WhatsApp.tsx";
import * as $$$$$$$$14 from "./sections/Carousel.tsx";
import * as $$$$$$$$14 from "./sections/DesignSystem.tsx";
import * as $$$$$$$$15 from "./sections/Header.tsx";
import * as $live_middleware from "$live/routes/_middleware.ts";
import * as $live_workbench from "$live/routes/live/workbench.ts";
import * as $live_invoke from "$live/routes/live/invoke/index.ts";
Expand Down Expand Up @@ -141,7 +142,7 @@ import * as i2$$$$$19 from "deco-sites/std/actions/vtex/wishlist/removeItem.ts";

const manifest = {
"routes": {
"./routes/_app.tsx": $$$$1,
"./routes/_app.tsx": $$$$0,
"./routes/_middleware.ts": $live_middleware,
"./routes/[...catchall].tsx": $live_catchall,
"./routes/index.tsx": $live_catchall,
Expand All @@ -152,40 +153,42 @@ const manifest = {
"./routes/live/invoke/index.ts": $live_invoke,
"./routes/live/previews/[...block].tsx": $live_previews,
"./routes/live/workbench.ts": $live_workbench,
"./routes/styles.css.ts": $$$$0,
"./routes/styles.css.ts": $$$$1,
},
"islands": {
"./islands/AddToCartButton.tsx": $$$$$5,
"./islands/HeaderButton.tsx": $$$$$4,
"./islands/HeaderModals.tsx": $$$$$6,
"./islands/HeaderSearchbar.tsx": $$$$$3,
"./islands/Newsletter.tsx": $$$$$0,
"./islands/OutOfStock.tsx": $$$$$9,
"./islands/ProductImageZoom.tsx": $$$$$8,
"./islands/SearchControls.tsx": $$$$$10,
"./islands/ShippingSimulation.tsx": $$$$$2,
"./islands/SliderJS.tsx": $$$$$7,
"./islands/WishlistButton.tsx": $$$$$1,
"./islands/AddToCartButton.tsx": $$$$$1,
"./islands/HeaderButton.tsx": $$$$$2,
"./islands/HeaderModals.tsx": $$$$$4,
"./islands/HeaderSearchbar.tsx": $$$$$5,
"./islands/Newsletter.tsx": $$$$$6,
"./islands/OutOfStock.tsx": $$$$$8,
"./islands/ProductImageZoom.tsx": $$$$$10,
"./islands/SearchControls.tsx": $$$$$7,
"./islands/ShippingSimulation.tsx": $$$$$3,
"./islands/SliderJS.tsx": $$$$$0,
"./islands/WishlistButton.tsx": $$$$$9,
},
"sections": {
"$live/sections/PageInclude.tsx": i2$$$$0,
"$live/sections/Slot.tsx": i2$$$$1,
"$live/sections/UseSlot.tsx": i2$$$$2,
"deco-sites/fashion/sections/BannerGrid.tsx": $$$$$$$$4,
"deco-sites/fashion/sections/BannerPLP.tsx": $$$$$$$$3,
"deco-sites/fashion/sections/Carousel.tsx": $$$$$$$$14,
"deco-sites/fashion/sections/CookieConsent.tsx": $$$$$$$$8,
"deco-sites/fashion/sections/DesignSystem.tsx": $$$$$$$$9,
"deco-sites/fashion/sections/Features.tsx": $$$$$$$$2,
"deco-sites/fashion/sections/Footer.tsx": $$$$$$$$7,
"deco-sites/fashion/sections/Header.tsx": $$$$$$$$10,
"deco-sites/fashion/sections/Highlights.tsx": $$$$$$$$12,
"deco-sites/fashion/sections/LinkTree.tsx": $$$$$$$$1,
"deco-sites/fashion/sections/ProductDetails.tsx": $$$$$$$$11,
"deco-sites/fashion/sections/ProductShelf.tsx": $$$$$$$$6,
"deco-sites/fashion/sections/SearchResult.tsx": $$$$$$$$5,
"deco-sites/fashion/sections/BannerGrid.tsx": $$$$$$$$0,
"deco-sites/fashion/sections/BannerPLP.tsx": $$$$$$$$2,
"deco-sites/fashion/sections/Carousel.tsx": $$$$$$$$9,
"deco-sites/fashion/sections/CookieConsent.tsx": $$$$$$$$5,
"deco-sites/fashion/sections/DesignSystem.tsx": $$$$$$$$14,
"deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx":
$$$$$$$$6,
"deco-sites/fashion/sections/Features.tsx": $$$$$$$$12,
"deco-sites/fashion/sections/Footer.tsx": $$$$$$$$10,
"deco-sites/fashion/sections/Header.tsx": $$$$$$$$15,
"deco-sites/fashion/sections/Highlights.tsx": $$$$$$$$11,
"deco-sites/fashion/sections/LinkTree.tsx": $$$$$$$$7,
"deco-sites/fashion/sections/ProductDetails.tsx": $$$$$$$$8,
"deco-sites/fashion/sections/ProductShelf.tsx": $$$$$$$$3,
"deco-sites/fashion/sections/SearchResult.tsx": $$$$$$$$4,
"deco-sites/fashion/sections/WhatsApp.tsx": $$$$$$$$13,
"deco-sites/fashion/sections/WishlistGallery.tsx": $$$$$$$$0,
"deco-sites/fashion/sections/WishlistGallery.tsx": $$$$$$$$1,
"deco-sites/std/sections/Analytics.tsx": i2$$$$3,
"deco-sites/std/sections/configButterCMS.global.tsx": i2$$$$4,
"deco-sites/std/sections/configOCC.global.tsx": i2$$$$5,
Expand Down
54 changes: 50 additions & 4 deletions schemas.gen.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
"deco-sites/fashion/sections/Carousel.tsx",
"deco-sites/fashion/sections/CookieConsent.tsx",
"deco-sites/fashion/sections/DesignSystem.tsx",
"deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx",
"deco-sites/fashion/sections/Features.tsx",
"deco-sites/fashion/sections/Footer.tsx",
"deco-sites/fashion/sections/Header.tsx",
Expand Down Expand Up @@ -7502,7 +7503,7 @@
"required": [],
"title": "OptionalColors"
},
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Colors&b966eeb0bbdb3699ee11b12ce6a39cc4": {
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Colors&faa31d87de52c4444928fd0dcc499de4": {
"allOf": [
{
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Colors"
Expand All @@ -7518,7 +7519,7 @@
"required": []
}
],
"title": "Colors&b966eeb0bbdb3699ee11b12ce6a39cc4"
"title": "Colors&faa31d87de52c4444928fd0dcc499de4"
},
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Miscellaneous": {
"type": "object",
Expand Down Expand Up @@ -7621,7 +7622,7 @@
"type": "object",
"properties": {
"colors": {
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Colors&b966eeb0bbdb3699ee11b12ce6a39cc4",
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g=@Colors&faa31d87de52c4444928fd0dcc499de4",
"title": "Colors"
},
"miscellaneous": {
Expand All @@ -7636,6 +7637,27 @@
"required": [],
"title": "deco-sites/fashion/sections/DesignSystem.tsx@Props"
},
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rpc2NvdW50QmFubmVyL0Rpc2NvdW50QmFubmVyLmNhcHl2YXJpYXMudHN4@Props": {
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "string"
},
"title": "Messages"
},
"durationInSeconds": {
"type": "number",
"title": "Duration In Seconds"
}
},
"required": [
"messages",
"durationInSeconds"
],
"title": "deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx@Props"
},
"ZGVjby1zaXRlcy9mYXNoaW9uL2NvbXBvbmVudHMvdWkvRmVhdHVyZXMudHN4@Feature": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -10904,6 +10926,27 @@
}
}
},
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rpc2NvdW50QmFubmVyL0Rpc2NvdW50QmFubmVyLmNhcHl2YXJpYXMudHN4": {
"title": "deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx",
"type": "object",
"allOf": [
{
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rpc2NvdW50QmFubmVyL0Rpc2NvdW50QmFubmVyLmNhcHl2YXJpYXMudHN4@Props"
}
],
"required": [
"__resolveType"
],
"properties": {
"__resolveType": {
"type": "string",
"enum": [
"deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx"
],
"default": "deco-sites/fashion/sections/DiscountBanner/DiscountBanner.capyvarias.tsx"
}
}
},
"ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0ZlYXR1cmVzLnRzeA==": {
"title": "deco-sites/fashion/sections/Features.tsx",
"type": "object",
Expand Down Expand Up @@ -12253,6 +12296,9 @@
{
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rlc2lnblN5c3RlbS50c3g="
},
{
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0Rpc2NvdW50QmFubmVyL0Rpc2NvdW50QmFubmVyLmNhcHl2YXJpYXMudHN4"
},
{
"$ref": "#/definitions/ZGVjby1zaXRlcy9mYXNoaW9uL3NlY3Rpb25zL0ZlYXR1cmVzLnRzeA=="
},
Expand Down Expand Up @@ -12512,4 +12558,4 @@
}
}
}
}
}
25 changes: 25 additions & 0 deletions sections/DiscountBanner/DiscountBanner.capyvarias.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export interface Props {
messages: string[];
durationInSeconds: number;
}

export default function DiscountBanner(
{ messages = [], durationInSeconds = 10 }: Props,
) {
return (
<div class="bg-primary w-full">
<div
class="flex gap-10 w-max text-sm animate-[slideleft_10s_linear_infinite]"
style={`animation-duration: ${durationInSeconds}s;`}
>
{messages.map((message, index) => (
<div class="pt-2 pb-2 lg:pt-4 lg:pb-4 flex gap-10 items-center text-primary-content group">
<p>{message}</p>
<span class="bg-primary-content h-1 w-1 rounded group-last:hidden">
</span>
</div>
))}
</div>
</div>
);
}
4 changes: 4 additions & 0 deletions tailwind.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ export default {
"--dot-progress": "100%",
},
},
"slideleft": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ola, voce esta quase completando a checklist! Para isso, mova esse slideleft para uma section inline na sua section. Um jeito seria de:

<style dangerouslySetInnerHTML={{__html: '@keyframes {'}} />

"0%": { transform: "translate(100vw,0)" },
"100%": { transform: "translate(-100%,0)" },
},
},
},
},
Expand Down