Skip to content
Open
3 changes: 2 additions & 1 deletion .deco/blocks/Header.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,6 @@
"children": []
}
],
"loading": "eager"
"loading": "eager",
"name": "Marcos"
}
17 changes: 17 additions & 0 deletions .deco/blocks/Preview%20site%2Fsections%2FHeader%2FHeader.tsx.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"__resolveType": "site/sections/Header/Header.tsx",
"alerts": [],
"navItems": [],
"searchbar": {
"placeholder": "What are you looking for?",
"loader": {
"data": {
"searches": [],
"products": []
},
"__resolveType": "resolved"
}
},
"logo": {},
"loading": "eager"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"__resolveType": "site/sections/Images/Carousel.tsx",
"images": []
}
4 changes: 1 addition & 3 deletions .deco/blocks/site.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@
},
{
"__resolveType": "analytics/sections/Analytics/DecoAnalytics.tsx"
}
],
"pageSections": [
},
{
"__resolveType": "site/sections/Session.tsx",
"minicart": null,
Expand Down
51 changes: 51 additions & 0 deletions _app.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { asset } from "$fresh/runtime.ts";
import { useScript } from "@deco/deco/hooks";
import { Head } from "@deco/deco/htmx";
import { ComponentChildren } from "preact";

const serviceWorkerScript = () =>
addEventListener("load", () =>
navigator && navigator.serviceWorker &&
navigator.serviceWorker.register("/sw.js?__frsh_c"));

export const Layout = (
{ children, revision, hmrUniqueId }: {
children: ComponentChildren;
revision: string;
hmrUniqueId: string;
},
) => {
return (
<>
{/* Include Icons and manifest */}
{/** @ts-ignore: ignore error */}
<Head>
{/* Enable View Transitions API */}
<style
dangerouslySetInnerHTML={{
__html: `@view-transition { navigation: auto; }`,
}}
/>

{/* Tailwind v3 CSS file */}
<link
href={`/styles.css?revision=${revision}${hmrUniqueId}`}
rel="stylesheet"
/>

{/* Web Manifest */}
<link rel="manifest" href={asset("/site.webmanifest")} />
</Head>

{/* Rest of Preact tree */}
{children}

<script
type="module"
dangerouslySetInnerHTML={{
__html: useScript(serviceWorkerScript),
}}
/>
</>
);
};
6 changes: 3 additions & 3 deletions apps/site.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import type { App as A, AppContext as AC } from "@deco/deco";
import { Section } from "@deco/deco/blocks";
import { rgb24 } from "@std/fmt/colors";
import commerce from "apps/commerce/mod.ts";
import { color as linx } from "apps/linx/mod.ts";
import { color as nuvemshop } from "apps/nuvemshop/mod.ts";
Expand All @@ -6,9 +9,6 @@ import { color as vnda } from "apps/vnda/mod.ts";
import { color as vtex } from "apps/vtex/mod.ts";
import { color as wake } from "apps/wake/mod.ts";
import { Props as WebsiteProps } from "apps/website/mod.ts";
import { Section } from "deco/blocks/section.ts";
import type { App as A, AppContext as AC } from "deco/mod.ts";
import { rgb24 } from "std/fmt/colors.ts";
import manifest, { Manifest } from "../manifest.gen.ts";

export interface Props extends WebsiteProps {
Expand Down
2 changes: 1 addition & 1 deletion components/Session.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Head } from "$fresh/runtime.ts";
import { useScript } from "@deco/deco/hooks";
import { type Person } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { type AppContext } from "../apps/site.ts";
import { MINICART_DRAWER_ID } from "../constants.ts";
import { useComponent } from "../sections/Component.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/header/Bag.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { MINICART_DRAWER_ID } from "../../constants.ts";
import { useId } from "../../sdk/useId.ts";
import Icon from "../ui/Icon.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/header/SignIn.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { clx } from "../../sdk/clx.ts";
import { useId } from "../../sdk/useId.ts";
import Icon from "../ui/Icon.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/minicart/Coupon.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useScript } from "@deco/deco/hooks";
import { MINICART_FORM_ID } from "../../constants.ts";
import { useScript } from "deco/hooks/useScript.ts";

export interface Props {
coupon?: string;
Expand Down
2 changes: 1 addition & 1 deletion components/minicart/Item.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useScript } from "@deco/deco/hooks";
import { AnalyticsItem } from "apps/commerce/types.ts";
import Image from "apps/website/components/Image.tsx";
import { clx } from "../../sdk/clx.ts";
import { formatPrice } from "../../sdk/format.ts";
import { useScript } from "deco/hooks/useScript.ts";
import Icon from "../ui/Icon.tsx";
import QuantitySelector from "../ui/QuantitySelector.tsx";

Expand Down
2 changes: 1 addition & 1 deletion components/minicart/Minicart.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { AppContext } from "../../apps/site.ts";
import { MINICART_DRAWER_ID, MINICART_FORM_ID } from "../../constants.ts";
import { clx } from "../../sdk/clx.ts";
Expand Down
2 changes: 1 addition & 1 deletion components/product/AddToCartButton.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useScript } from "@deco/deco/hooks";
import { AnalyticsItem, Product } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { JSX } from "preact";
import { clx } from "../../sdk/clx.ts";
import { useId } from "../../sdk/useId.ts";
Expand Down
2 changes: 1 addition & 1 deletion components/product/ProductVariantSelector.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useSection } from "@deco/deco/hooks";
import type { Product } from "apps/commerce/types.ts";
import { useSection } from "deco/hooks/useSection.ts";
import { clx } from "../../sdk/clx.ts";
import { relative } from "../../sdk/url.ts";
import { useId } from "../../sdk/useId.ts";
Expand Down
6 changes: 2 additions & 4 deletions components/search/SearchResult.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { SectionProps } from "@deco/deco";
import { useDevice, useScript, useSection } from "@deco/deco/hooks";
import type { ProductListingPage } from "apps/commerce/types.ts";
import { mapProductToAnalyticsItem } from "apps/commerce/utils/productToAnalyticsItem.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { useSection } from "deco/hooks/useSection.ts";
import { SectionProps } from "deco/mod.ts";
import ProductCard from "../../components/product/ProductCard.tsx";
import Filters from "../../components/search/Filters.tsx";
import Icon from "../../components/ui/Icon.tsx";
Expand All @@ -13,7 +12,6 @@ import { useSendEvent } from "../../sdk/useSendEvent.ts";
import Breadcrumb from "../ui/Breadcrumb.tsx";
import Drawer from "../ui/Drawer.tsx";
import Sort from "./Sort.tsx";
import { useDevice } from "deco/hooks/useDevice.ts";

export interface Layout {
/**
Expand Down
8 changes: 4 additions & 4 deletions components/search/Searchbar/Form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
* no JavaScript is shipped to the browser!
*/

import { asResolved, Resolved } from "@deco/deco";
import { useScript } from "@deco/deco/hooks";
import { Suggestion } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { asResolved, Resolved } from "deco/mod.ts";
import {
SEARCHBAR_INPUT_FORM_ID,
SEARCHBAR_POPUP_ID,
SEARCHBAR_INPUT_FORM_ID,
SEARCHBAR_POPUP_ID,
} from "../../../constants.ts";
import { useId } from "../../../sdk/useId.ts";
import { useComponent } from "../../../sections/Component.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/search/Searchbar/Suggestions.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Resolved } from "@deco/deco";
import { Suggestion } from "apps/commerce/types.ts";
import { Resolved } from "deco/mod.ts";
import type { AppContext } from "../../../apps/site.ts";
import { clx } from "../../../sdk/clx.ts";
import { ComponentProps } from "../../../sections/Component.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/search/Sort.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useScript } from "@deco/deco/hooks";
import { ProductListingPage } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";

const SORT_QUERY_PARAM = "sort";
const PAGE_QUERY_PARAM = "page";
Expand Down
2 changes: 1 addition & 1 deletion components/ui/CategoryBanner.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { SectionProps } from "@deco/deco";
import type { ImageWidget } from "apps/admin/widgets.ts";
import { Picture, Source } from "apps/website/components/Picture.tsx";
import type { SectionProps } from "deco/types.ts";

/**
* @titleBy matcher
Expand Down
2 changes: 1 addition & 1 deletion components/ui/Drawer.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { type ComponentChildren } from "preact";
import { clx } from "../../sdk/clx.ts";
import { useId } from "../../sdk/useId.ts";
Expand Down
2 changes: 1 addition & 1 deletion components/ui/Modal.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { ComponentChildren } from "preact";
import { useId } from "../../sdk/useId.ts";

Expand Down
2 changes: 1 addition & 1 deletion components/ui/QuantitySelector.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { type JSX } from "preact";
import { clx } from "../../sdk/clx.ts";
import { useId } from "../../sdk/useId.ts";
Expand Down
2 changes: 1 addition & 1 deletion components/ui/Slider.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import type { JSX } from "preact";
import { clx } from "../../sdk/clx.ts";

Expand Down
2 changes: 1 addition & 1 deletion components/user/Provider.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useScript } from "@deco/deco/hooks";
import { Person } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { USER_ID } from "../../constants.ts";

const onLoad = (jsonID: string) => {
Expand Down
2 changes: 1 addition & 1 deletion components/wishlist/Provider.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useScript } from "deco/hooks/useScript.ts";
import { useScript } from "@deco/deco/hooks";
import { AppContext } from "../../apps/site.ts";
import { WISHLIST_FORM_ID } from "../../constants.ts";
import { useComponent } from "../../sections/Component.tsx";
Expand Down
2 changes: 1 addition & 1 deletion components/wishlist/WishlistButton.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useScript } from "@deco/deco/hooks";
import { AnalyticsItem } from "apps/commerce/types.ts";
import { useScript } from "deco/hooks/useScript.ts";
import { clx } from "../../sdk/clx.ts";
import { useId } from "../../sdk/useId.ts";
import { useSendEvent } from "../../sdk/useSendEvent.ts";
Expand Down
4 changes: 2 additions & 2 deletions components/wishlist/WishlistGallery.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SectionProps } from "deco/mod.ts";
import { SectionProps } from "@deco/deco";
import SearchResult, {
Props as SearchResultProps,
Props as SearchResultProps,
} from "../search/SearchResult.tsx";

export type Props = SearchResultProps;
Expand Down
30 changes: 20 additions & 10 deletions deno.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
{
"imports": {
"deco/": "https://cdn.jsdelivr.net/gh/deco-cx/[email protected]/",
"apps/": "https://cdn.jsdelivr.net/gh/deco-cx/[email protected]/",
"$fresh/": "https://deno.land/x/[email protected]/",
"preact": "https://esm.sh/[email protected]",
"preact/": "https://esm.sh/[email protected]/",
"preact-render-to-string": "https://esm.sh/*[email protected]",
"@deco/deco": "jsr:@deco/[email protected]",
"@preact/signals": "https://esm.sh/*@preact/[email protected]",
"@preact/signals-core": "https://esm.sh/*@preact/[email protected]",
"std/": "https://deno.land/[email protected]/",
"daisyui": "npm:[email protected]"
"@deco/durable": "jsr:@deco/durable@^0.5.3",
"@std/assert": "jsr:@std/assert@^1.0.2",
"@std/async": "jsr:@std/async@^1.0.3",
"@std/crypto": "jsr:@std/crypto@^1.0.2",
"@std/encoding": "jsr:@std/encoding@^1.0.1",
"@std/fmt": "jsr:@std/fmt@^1.0.0",
"@std/http": "jsr:@std/http@^1.0.2",
"@std/media-types": "jsr:@std/media-types@^1.0.2",
"@std/path": "jsr:@std/path@^1.0.2",
"apps/": "https://denopkg.com/deco-cx/apps@2dfb5a43753691dc4bb6062945cb602b55a02482/",
"daisyui": "npm:[email protected]",
"partytown/": "https://deno.land/x/[email protected]/",
"preact": "npm:[email protected]",
"preact-render-to-string": "https://esm.sh/*[email protected]"
},
"tasks": {
"start": "deno task bundle && deno run -A --unstable-http --env --config=deno.json $(deno eval 'console.log(import.meta.resolve(\"deco/hypervisor/main.ts\"))') --build-cmd 'deno task build' -- deno task dev",
"start": "deno task bundle && deno run -A --unstable-http --env --config=deno.json https://deco.cx/run --build-cmd 'deno task build' -- deno task dev",
"gen": "deno run -A dev.ts --gen-only",
"play": "USE_LOCAL_STORAGE_ONLY=true deno task start",
"component": "deno eval 'import \"deco/scripts/component.ts\"'",
"release": "deno eval 'import \"deco/scripts/release.ts\"'",
"update": "deno run -Ar https://deco.cx/update",
"check": "deno fmt && deno lint && deno check dev.ts main.ts",
"install": "deno eval 'import \"deco/scripts/apps/install.ts\"'",
"uninstall": "deno eval 'import \"deco/scripts/apps/uninstall.ts\"'",
"bundle": "deno eval 'import \"deco/scripts/apps/bundle.ts\"' site",
"update": "deno run -Ar jsr:@deco/scripts/update",
"bundle": "deno run -A jsr:@deco/deco/scripts/bundle site",
"cache_clean": "rm deno.lock; deno cache -r main.ts",
"decodev": "deno run -A jsr:@deco/deco/scripts/dev",
"decoprod": "deno run -A jsr:@deco/deco/scripts/dev $ && deno add jsr:@deco/deco",
"build": "deno run -A dev.ts build",
"preview": "deno run -A main.ts",
"generate-icons": "deno run -A --unstable static/generate-icons.ts",
Expand Down
10 changes: 1 addition & 9 deletions dev.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
import { setupGithooks } from "https://deno.land/x/[email protected]/githooks.ts";

import dev from "$fresh/dev.ts";
import config from "./fresh.config.ts";

setupGithooks().catch(console.error);

// Generate manifest and boot server
await dev(import.meta.url, "./main.ts", config);
import "./hono.ts";

if (Deno.args.includes("build")) {
Deno.exit(0);
Expand Down
12 changes: 0 additions & 12 deletions fresh.config.ts

This file was deleted.

17 changes: 0 additions & 17 deletions fresh.gen.ts

This file was deleted.

20 changes: 20 additions & 0 deletions hono.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { Deco } from "@deco/deco";

import { Head } from "$fresh/runtime.ts";
import { bindings as HTMX } from "@deco/deco/htmx";
import { type Manifest } from "./manifest.gen.ts";
// compatibility code with Fresh
import type { ComponentType } from "preact";
import { Layout } from "./_app.tsx";

(Head as ComponentType).displayName = "HTMLHead";
// end compatibility code with fresh

const deco = await Deco.init({
bindings: HTMX<Manifest>({
Layout,
}),
});

const envPort = Deno.env.get("PORT");
Deno.serve({ handler: deco.fetch.bind(deco), port: envPort ? +envPort : 8000 });
Loading