diff --git a/controllers/cartItemController.go b/controllers/cartItemController.go
index 5d2ce55..e74c584 100644
--- a/controllers/cartItemController.go
+++ b/controllers/cartItemController.go
@@ -3,7 +3,6 @@ package controllers
import (
"fmt"
"net/http"
- "strconv"
"crypto/rand"
"encoding/hex"
@@ -49,29 +48,22 @@ func GetSessionId(ctx *gin.Context) string {
}
func (rc *cartItemController) NewCartItemFromForm(ctx *gin.Context) (models.CartItem, error) {
- fmt.Println("NEWITEM")
sessionId := GetSessionId(ctx)
+ shopItemId := ctx.PostForm("ShopItemId")
+ quantity := 1
- shopItemId, err := strconv.Atoi(ctx.PostForm("ShopItemId"))
+ shopItem, err := repositories.ShopItems.GetById(shopItemId)
if err != nil {
return models.CartItem{}, err
}
- quantity := 1
- //quantity, err := strconv.Atoi(ctx.PostForm("quantity"))
-
- //if err != nil {
- // return models.CartItem{}, err
- //}
-
cartItem := models.CartItem{
SessionId: sessionId,
- ShopItemId: shopItemId,
+ ShopItem: shopItem,
Quantity: quantity,
}
- fmt.Println("NEWITEM")
return cartItem, nil
}
@@ -133,6 +125,8 @@ func (rc *cartItemController) CartItemView(c *gin.Context) {
c.HTML(http.StatusBadRequest, "cart.html", gin.H{ "data": gin.H{ "error": err } })
}
+ fmt.Printf("CARTITEMS: %v\n", cartItems)
+
data := CreateSessionData(c, gin.H{
"cartItems": cartItems,
})
diff --git a/models/cart.go b/models/cart.go
index db07da1..7ada1c9 100644
--- a/models/cart.go
+++ b/models/cart.go
@@ -6,7 +6,7 @@ import (
type CartItem struct {
gorm.Model
- SessionId string `gorm:"index"`
- ShopItemId int `gorm:"index"`
- Quantity int
+ SessionId string `json:"sessionid" binding:"required" gorm:"not null"`
+ ShopItem ShopItem `json:"shopitem" gorm:"foreignKey:ID"` //gorm one2one
+ Quantity int `json:"quantity" binding:"required"`
}
diff --git a/repositories/cartItemRepository.go b/repositories/cartItemRepository.go
index 79a481f..0f85a85 100644
--- a/repositories/cartItemRepository.go
+++ b/repositories/cartItemRepository.go
@@ -34,20 +34,25 @@ func (r *GORMCartItemRepository) Create(cartItem models.CartItem) (models.CartIt
func (r *GORMCartItemRepository) GetAll() ([]models.CartItem, error) {
var cartItems []models.CartItem
- result := r.DB.Find(&cartItems)
+ result := r.DB.Preload("ShopItem").Find(&cartItems)
return cartItems, result.Error
}
func (r *GORMCartItemRepository) GetAllBySession(sessionId string) ([]models.CartItem, error) {
var cartItems []models.CartItem
- result := r.DB.Where("session_id = ?", sessionId).Find(&cartItems)
+ result := r.DB.Preload("ShopItem").Where("session_id = ?", sessionId).Find(&cartItems)
return cartItems, result.Error
}
func (r *GORMCartItemRepository) Update(cartItem models.CartItem) (models.CartItem, error) {
+ err := r.DB.Model(&cartItem).Association("Tags").Replace(cartItem.ShopItem)
+ if err != nil {
+ return models.CartItem{}, err
+ }
+
result := r.DB.Save(&cartItem)
if result.Error != nil {
return models.CartItem{}, result.Error
diff --git a/static/output.css b/static/output.css
index e1c3a4b..ca8ab7c 100644
--- a/static/output.css
+++ b/static/output.css
@@ -587,6 +587,10 @@ video {
right: 0px;
}
+.col-span-12 {
+ grid-column: span 12 / span 12;
+}
+
.m-2 {
margin: 0.5rem;
}
@@ -595,11 +599,6 @@ video {
margin: 1rem;
}
-.mx-auto {
- margin-left: auto;
- margin-right: auto;
-}
-
.-mx-2 {
margin-left: -0.5rem;
margin-right: -0.5rem;
@@ -610,9 +609,13 @@ video {
margin-right: -1rem;
}
-.-mx-3 {
- margin-left: -0.75rem;
- margin-right: -0.75rem;
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem;
}
.mb-4 {
@@ -623,6 +626,18 @@ video {
margin-left: 0.5rem;
}
+.ml-4 {
+ margin-left: 1rem;
+}
+
+.mr-2 {
+ margin-right: 0.5rem;
+}
+
+.mr-4 {
+ margin-right: 1rem;
+}
+
.mt-1 {
margin-top: 0.25rem;
}
@@ -643,24 +658,16 @@ video {
margin-top: 1.5rem;
}
-.mb-2 {
- margin-bottom: 0.5rem;
+.mb-5 {
+ margin-bottom: 1.25rem;
}
-.mr-2 {
- margin-right: 0.5rem;
+.mb-6 {
+ margin-bottom: 1.5rem;
}
-.mr-4 {
- margin-right: 1rem;
-}
-
-.mt-12 {
- margin-top: 3rem;
-}
-
-.ml-4 {
- margin-left: 1rem;
+.mb-8 {
+ margin-bottom: 2rem;
}
.block {
@@ -699,18 +706,10 @@ video {
height: 1rem;
}
-.h-48 {
- height: 12rem;
-}
-
.h-8 {
height: 2rem;
}
-.h-6 {
- height: 1.5rem;
-}
-
.h-\[460px\] {
height: 460px;
}
@@ -723,6 +722,10 @@ video {
min-height: 100%;
}
+.w-1\/3 {
+ width: 33.333333%;
+}
+
.w-12 {
width: 3rem;
}
@@ -739,20 +742,8 @@ video {
width: 100%;
}
-.w-1\/2 {
- width: 50%;
-}
-
-.w-6 {
- width: 1.5rem;
-}
-
-.w-1\/3 {
- width: 33.333333%;
-}
-
-.max-w-7xl {
- max-width: 80rem;
+.w-10 {
+ width: 2.5rem;
}
.max-w-2xl {
@@ -763,6 +754,10 @@ video {
max-width: 72rem;
}
+.max-w-7xl {
+ max-width: 80rem;
+}
+
.max-w-md {
max-width: 28rem;
}
@@ -787,8 +782,8 @@ video {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
-.grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
+.grid-cols-12 {
+ grid-template-columns: repeat(12, minmax(0, 1fr));
}
.flex-col {
@@ -807,6 +802,14 @@ video {
justify-content: space-between;
}
+.gap-4 {
+ gap: 1rem;
+}
+
+.gap-5 {
+ gap: 1.25rem;
+}
+
.gap-x-6 {
-moz-column-gap: 1.5rem;
column-gap: 1.5rem;
@@ -816,6 +819,10 @@ video {
row-gap: 2.5rem;
}
+.gap-y-4 {
+ row-gap: 1rem;
+}
+
.space-x-4 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(1rem * var(--tw-space-x-reverse));
@@ -840,10 +847,18 @@ video {
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
+.whitespace-nowrap {
+ white-space: nowrap;
+}
+
.rounded {
border-radius: 0.25rem;
}
+.rounded-full {
+ border-radius: 9999px;
+}
+
.rounded-lg {
border-radius: 0.5rem;
}
@@ -852,8 +867,12 @@ video {
border-radius: 0.375rem;
}
-.rounded-full {
- border-radius: 9999px;
+.rounded-3xl {
+ border-radius: 1.5rem;
+}
+
+.rounded-\[50px\] {
+ border-radius: 50px;
}
.rounded-l-md {
@@ -861,11 +880,6 @@ video {
border-bottom-left-radius: 0.375rem;
}
-.rounded-r-md {
- border-top-right-radius: 0.375rem;
- border-bottom-right-radius: 0.375rem;
-}
-
.border {
border-width: 1px;
}
@@ -874,6 +888,10 @@ video {
border-width: 2px;
}
+.border-b {
+ border-bottom-width: 1px;
+}
+
.border-dashed {
border-style: dashed;
}
@@ -883,11 +901,36 @@ video {
border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
+.border-gray-200 {
+ --tw-border-opacity: 1;
+ border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
+}
+
+.bg-blue-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
+}
+
+.bg-blue-900 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
+}
+
+.bg-gray-100 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
+}
+
.bg-gray-200 {
--tw-bg-opacity: 1;
background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
+.bg-gray-300 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
+}
+
.bg-gray-800 {
--tw-bg-opacity: 1;
background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
@@ -898,74 +941,46 @@ video {
background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
}
+.bg-green-600 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
+}
+
.bg-indigo-600 {
--tw-bg-opacity: 1;
background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));
}
-.bg-white {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
-}
-
-.bg-blue-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
-}
-
-.bg-gray-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
-}
-
-.bg-gray-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
-}
-
-.bg-red-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
-}
-
-.bg-yellow-500 {
- --tw-bg-opacity: 1;
- background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
-}
-
-.bg-red-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(127 29 29 / var(--tw-bg-opacity, 1));
-}
-
-.bg-blue-900 {
- --tw-bg-opacity: 1;
- background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
-}
-
-.bg-blue-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
-}
-
-.bg-red-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
-}
-
-.bg-red-300 {
- --tw-bg-opacity: 1;
- background-color: rgb(252 165 165 / var(--tw-bg-opacity, 1));
-}
-
.bg-red-800 {
--tw-bg-opacity: 1;
background-color: rgb(153 27 27 / var(--tw-bg-opacity, 1));
}
-.bg-green-600 {
+.bg-red-900 {
--tw-bg-opacity: 1;
- background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
+ background-color: rgb(127 29 29 / var(--tw-bg-opacity, 1));
+}
+
+.bg-white {
+ --tw-bg-opacity: 1;
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+}
+
+.bg-indigo-50 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
+}
+
+.fill-red-50 {
+ fill: #fef2f2;
+}
+
+.stroke-gray-900 {
+ stroke: #111827;
+}
+
+.stroke-red-500 {
+ stroke: #ef4444;
}
.object-cover {
@@ -981,6 +996,10 @@ video {
padding: 1rem;
}
+.p-2\.5 {
+ padding: 0.625rem;
+}
+
.px-2 {
padding-left: 0.5rem;
padding-right: 0.5rem;
@@ -1011,21 +1030,36 @@ video {
padding-bottom: 3rem;
}
-.py-2 {
- padding-top: 0.5rem;
- padding-bottom: 0.5rem;
-}
-
.py-16 {
padding-top: 4rem;
padding-bottom: 4rem;
}
+.py-2 {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
.py-8 {
padding-top: 2rem;
padding-bottom: 2rem;
}
+.py-2\.5 {
+ padding-top: 0.625rem;
+ padding-bottom: 0.625rem;
+}
+
+.py-24 {
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+}
+
+.py-4 {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
.pb-3 {
padding-bottom: 0.75rem;
}
@@ -1054,6 +1088,15 @@ video {
text-align: center;
}
+.text-right {
+ text-align: right;
+}
+
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+
.text-2xl\/9 {
font-size: 1.5rem;
line-height: 2.25rem;
@@ -1084,9 +1127,14 @@ video {
line-height: 1rem;
}
-.text-2xl {
- font-size: 1.5rem;
- line-height: 2rem;
+.text-3xl {
+ font-size: 1.875rem;
+ line-height: 2.25rem;
+}
+
+.text-4xl {
+ font-size: 2.25rem;
+ line-height: 2.5rem;
}
.font-bold {
@@ -1101,6 +1149,22 @@ video {
font-weight: 600;
}
+.font-normal {
+ font-weight: 400;
+}
+
+.leading-10 {
+ line-height: 2.5rem;
+}
+
+.leading-7 {
+ line-height: 1.75rem;
+}
+
+.leading-9 {
+ line-height: 2.25rem;
+}
+
.tracking-tight {
letter-spacing: -0.025em;
}
@@ -1125,6 +1189,11 @@ video {
color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
+.text-gray-800 {
+ --tw-text-opacity: 1;
+ color: rgb(31 41 55 / var(--tw-text-opacity, 1));
+}
+
.text-gray-900 {
--tw-text-opacity: 1;
color: rgb(17 24 39 / var(--tw-text-opacity, 1));
@@ -1155,9 +1224,9 @@ video {
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
-.text-gray-800 {
+.text-black {
--tw-text-opacity: 1;
- color: rgb(31 41 55 / var(--tw-text-opacity, 1));
+ color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.shadow-sm {
@@ -1166,6 +1235,16 @@ video {
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
+.shadow-transparent {
+ --tw-shadow-color: transparent;
+ --tw-shadow: var(--tw-shadow-colored);
+}
+
+.outline-none {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
.outline {
outline-style: solid;
}
@@ -1182,6 +1261,16 @@ video {
outline-color: #d1d5db;
}
+.transition-all {
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 150ms;
+}
+
+.duration-500 {
+ transition-duration: 500ms;
+}
+
.placeholder\:text-gray-400::-moz-placeholder {
--tw-text-opacity: 1;
color: rgb(156 163 175 / var(--tw-text-opacity, 1));
@@ -1197,6 +1286,14 @@ video {
outline-offset: 2px;
}
+.focus-within\:outline-gray-300:focus-within {
+ outline-color: #d1d5db;
+}
+
+.focus-within\:outline-red-500:focus-within {
+ outline-color: #ef4444;
+}
+
.focus-within\:ring-2:focus-within {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -1212,29 +1309,9 @@ video {
--tw-ring-offset-width: 2px;
}
-.hover\:bg-gray-700:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-indigo-500:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-gray-400:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-gray-300:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
-}
-
-.hover\:bg-gray-800:hover {
- --tw-bg-opacity: 1;
- background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+.hover\:border-gray-300:hover {
+ --tw-border-opacity: 1;
+ border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.hover\:bg-blue-700:hover {
@@ -1242,9 +1319,29 @@ video {
background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
-.hover\:bg-red-700:hover {
+.hover\:bg-gray-400:hover {
--tw-bg-opacity: 1;
- background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
+ background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-gray-700:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-gray-800:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-green-700:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-indigo-500:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-900:hover {
@@ -1252,9 +1349,19 @@ video {
background-color: rgb(127 29 29 / var(--tw-bg-opacity, 1));
}
-.hover\:bg-green-700:hover {
+.hover\:bg-gray-50:hover {
--tw-bg-opacity: 1;
- background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
+ background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-indigo-100:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));
+}
+
+.hover\:bg-indigo-700:hover {
+ --tw-bg-opacity: 1;
+ background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));
}
.hover\:text-indigo-500:hover {
@@ -1267,6 +1374,11 @@ video {
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
+.hover\:shadow-gray-200:hover {
+ --tw-shadow-color: #e5e7eb;
+ --tw-shadow: var(--tw-shadow-colored);
+}
+
.focus\:border-blue-500:focus {
--tw-border-opacity: 1;
border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
@@ -1320,10 +1432,47 @@ video {
outline-color: #4f46e5;
}
+.group:hover .group-hover\:fill-red-400 {
+ fill: #f87171;
+}
+
+.group:hover .group-hover\:stroke-black {
+ stroke: #000;
+}
+
+.group:hover .group-hover\:stroke-white {
+ stroke: #fff;
+}
+
.group:hover .group-hover\:opacity-75 {
opacity: 0.75;
}
+@media not all and (min-width: 1024px) {
+ .max-lg\:mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ .max-lg\:w-full {
+ width: 100%;
+ }
+
+ .max-lg\:max-w-lg {
+ max-width: 32rem;
+ }
+}
+
+@media not all and (min-width: 768px) {
+ .max-md\:mb-4 {
+ margin-bottom: 1rem;
+ }
+
+ .max-md\:text-center {
+ text-align: center;
+ }
+}
+
@media (min-width: 640px) {
.sm\:static {
position: static;
@@ -1362,16 +1511,16 @@ video {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
- .sm\:px-8 {
- padding-left: 2rem;
- padding-right: 2rem;
- }
-
.sm\:px-6 {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
+ .sm\:px-8 {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+
.sm\:py-24 {
padding-top: 6rem;
padding-bottom: 6rem;
@@ -1388,14 +1537,6 @@ video {
}
@media (min-width: 768px) {
- .md\:h-full {
- height: 100%;
- }
-
- .md\:w-48 {
- width: 12rem;
- }
-
.md\:flex-1 {
flex: 1 1 0%;
}
@@ -1407,9 +1548,26 @@ video {
.md\:flex-row {
flex-direction: row;
}
+
+ .md\:items-center {
+ align-items: center;
+ }
+
+ .md\:px-5 {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
}
@media (min-width: 1024px) {
+ .lg\:col-span-10 {
+ grid-column: span 10 / span 10;
+ }
+
+ .lg\:col-span-2 {
+ grid-column: span 2 / span 2;
+ }
+
.lg\:aspect-auto {
aspect-ratio: auto;
}
@@ -1418,6 +1576,10 @@ video {
height: 20rem;
}
+ .lg\:w-\[180px\] {
+ width: 180px;
+ }
+
.lg\:max-w-7xl {
max-width: 80rem;
}
@@ -1430,10 +1592,23 @@ video {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
+ .lg\:p-8 {
+ padding: 2rem;
+ }
+
.lg\:px-8 {
padding-left: 2rem;
padding-right: 2rem;
}
+
+ .lg\:px-6 {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+
+ .lg\:pl-3 {
+ padding-left: 0.75rem;
+ }
}
@media (min-width: 1280px) {
@@ -1453,21 +1628,6 @@ video {
border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));
}
- .dark\:bg-gray-800 {
- --tw-bg-opacity: 1;
- background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
- }
-
- .dark\:bg-blue-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
- }
-
- .dark\:bg-gray-200 {
- --tw-bg-opacity: 1;
- background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
- }
-
.dark\:bg-gray-600 {
--tw-bg-opacity: 1;
background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
@@ -1478,14 +1638,9 @@ video {
background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
- .dark\:bg-red-700 {
+ .dark\:bg-gray-800 {
--tw-bg-opacity: 1;
- background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
- }
-
- .dark\:bg-yellow-700 {
- --tw-bg-opacity: 1;
- background-color: rgb(161 98 7 / var(--tw-bg-opacity, 1));
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.dark\:bg-red-600 {
diff --git a/views/cart.html b/views/cart.html
index 45379bd..83893b5 100644
--- a/views/cart.html
+++ b/views/cart.html
@@ -1,4 +1,138 @@
{{ template "header.html" . }}
+
+
+ Introducing our sleek round white portable speaker, the epitome of style and sound! Elevate your auditory experience with this compact yet powerful device that delivers crystal-clear audio wherever you go. More....
+
+ Introducing our sleek round white portable speaker, the epitome of style and sound! Elevate your auditory experience with this compact yet powerful device that delivers crystal-clear audio wherever you go. More....
+ Shipping taxes, and discounts
+ calculated
+ at checkoutShopping Cart
+
+
+ Round white portable
+ speaker
+
+ $220
+
+ Gray round portable
+ speaker
+
+ $220
+ Subtotal
+
+ $440
+
{{ .Quantity }} pieces