Move Shop store into separate file

This commit is contained in:
2021-11-07 22:38:23 +01:00
parent f7457b5f8d
commit 3198fd8545
8 changed files with 51 additions and 41 deletions

View File

@@ -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'

View File

@@ -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: {

View File

@@ -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

View File

@@ -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'

View File

@@ -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'

View File

@@ -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
*/ */

View File

@@ -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
View 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([])