Move Shop store into separate file
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { scale } from 'svelte/transition'
|
import { scale } from 'svelte/transition'
|
||||||
import { quartOut } from 'svelte/easing'
|
import { quartOut } from 'svelte/easing'
|
||||||
import { cartOpen, cartAmount } from '$utils/store'
|
import { cartOpen, cartAmount } from '$utils/stores/shop'
|
||||||
// Components
|
// Components
|
||||||
import ButtonCircle from '$components/atoms/ButtonCircle.svelte'
|
import ButtonCircle from '$components/atoms/ButtonCircle.svelte'
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { capitalizeFirstLetter } from '$utils/functions'
|
import { capitalizeFirstLetter } from '$utils/functions'
|
||||||
import { cartId, cartData } from '$utils/store'
|
import { cartId, cartData } from '$utils/stores/shop'
|
||||||
import { addNotification } from '$utils/notifications'
|
import { addNotification } from '$utils/notifications'
|
||||||
// Components
|
// Components
|
||||||
import Button from '$components/atoms/Button.svelte'
|
import Button from '$components/atoms/Button.svelte'
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
lastPreviewPhoto = product.photos_preview[product.photos_preview.length - 1].directus_files_id
|
lastPreviewPhoto = product.photos_preview[product.photos_preview.length - 1].directus_files_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Images sizes
|
||||||
const photosPreview = [
|
const photosPreview = [
|
||||||
{
|
{
|
||||||
sizes: {
|
sizes: {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { fly } from 'svelte/transition'
|
import { fly } from 'svelte/transition'
|
||||||
import { quartOut } from 'svelte/easing'
|
import { quartOut } from 'svelte/easing'
|
||||||
import { cartOpen } from '$utils/store'
|
import { cartOpen } from '$utils/stores/shop'
|
||||||
|
|
||||||
export let title: string
|
export let title: string
|
||||||
export let name: string
|
export let name: string
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { onMount } from 'svelte'
|
import { onMount } from 'svelte'
|
||||||
import { fade, fly } from 'svelte/transition'
|
import { fade, fly } from 'svelte/transition'
|
||||||
import { quartOut } from 'svelte/easing'
|
import { quartOut } from 'svelte/easing'
|
||||||
import { cartOpen, cartId, cartData, cartAmount, cartIsUpdating } from '$utils/store'
|
import { cartOpen, cartId, cartData, cartAmount, cartIsUpdating } from '$utils/stores/shop'
|
||||||
// Components
|
// Components
|
||||||
import Button from '$components/atoms/Button.svelte'
|
import Button from '$components/atoms/Button.svelte'
|
||||||
import CartItem from '$components/molecules/CartItem.svelte'
|
import CartItem from '$components/molecules/CartItem.svelte'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount } from 'svelte'
|
import { onMount } from 'svelte'
|
||||||
import { cartNotifications } from '$utils/store'
|
import { shopLocations, cartOpen, cartNotifications } from '$utils/stores/shop'
|
||||||
// Components
|
// Components
|
||||||
import Metas from '$components/Metas.svelte'
|
import Metas from '$components/Metas.svelte'
|
||||||
import SiteTitle from '$components/atoms/SiteTitle.svelte'
|
import SiteTitle from '$components/atoms/SiteTitle.svelte'
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { cartNotifications } from './store'
|
import { cartNotifications } from '$utils/stores/shop'
|
||||||
|
|
||||||
interface Notification {
|
interface Notification {
|
||||||
title: string
|
title: string
|
||||||
@@ -8,6 +8,7 @@ interface Notification {
|
|||||||
id?: number
|
id?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a notification
|
* Add a notification
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
import { writable, derived } from 'svelte/store'
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shop
|
|
||||||
*/
|
|
||||||
/** Open Cart state */
|
|
||||||
export const cartOpen = writable(false)
|
|
||||||
|
|
||||||
/** Current Cart ID */
|
|
||||||
export const cartId = writable(null)
|
|
||||||
|
|
||||||
if (typeof localStorage !== 'undefined') {
|
|
||||||
if (localStorage.getItem('cartId')) {
|
|
||||||
console.log('existant', localStorage.getItem('cartId'))
|
|
||||||
cartId.set(localStorage.getItem('cartId'))
|
|
||||||
}
|
|
||||||
cartId.subscribe(value => localStorage.setItem('cartId', value))
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Raw Cart data */
|
|
||||||
export const cartData = writable(null)
|
|
||||||
|
|
||||||
/** Cart data is being updated */
|
|
||||||
export const cartIsUpdating = writable(false)
|
|
||||||
|
|
||||||
/** Amount of products present in cart */
|
|
||||||
export const cartAmount = derived(cartData, ($cart) => {
|
|
||||||
return $cart && $cart.item_quantity > 0 ? $cart.item_quantity : 0
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Notifications
|
|
||||||
*/
|
|
||||||
export const cartNotifications = writable([])
|
|
||||||
43
src/utils/stores/shop.ts
Normal file
43
src/utils/stores/shop.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import { writable, derived } from 'svelte/store'
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shop
|
||||||
|
*/
|
||||||
|
export const shopLocations = writable([])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cart
|
||||||
|
*/
|
||||||
|
/** Cart open state */
|
||||||
|
export const cartOpen = writable(false)
|
||||||
|
|
||||||
|
/** Cart open state */
|
||||||
|
export const cartId = writable(null)
|
||||||
|
|
||||||
|
// Write to localStorage when changing cartId
|
||||||
|
if (typeof localStorage !== 'undefined') {
|
||||||
|
if (localStorage.getItem('cartId')) {
|
||||||
|
// console.log('existant', localStorage.getItem('cartId'))
|
||||||
|
cartId.set(localStorage.getItem('cartId'))
|
||||||
|
}
|
||||||
|
cartId.subscribe(value => localStorage.setItem('cartId', value))
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Raw Cart data */
|
||||||
|
export const cartData = writable(null)
|
||||||
|
|
||||||
|
/** Cart data is being updated */
|
||||||
|
export const cartIsUpdating = writable(false)
|
||||||
|
|
||||||
|
/** Amount of products present in cart */
|
||||||
|
export const cartAmount = derived(cartData, ($cart) => {
|
||||||
|
return $cart && $cart.item_quantity > 0 ? $cart.item_quantity : 0
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifications
|
||||||
|
*/
|
||||||
|
export const cartNotifications = writable([])
|
||||||
Reference in New Issue
Block a user