ok
This commit is contained in:
@@ -265,7 +265,7 @@ const Item = ({
|
||||
</button>
|
||||
)} */}
|
||||
</div>
|
||||
{itemDescription?.length &&
|
||||
{itemDescription && itemDescription != 'undefined' && itemDescription?.length &&
|
||||
<div>
|
||||
<p style={{color: '#5f5f5f', fontSize: '3.2vw', padding: '5px'}}>{itemDescription}</p>
|
||||
</div>
|
||||
|
||||
@@ -78,10 +78,11 @@ const ItemConfig = ({
|
||||
}, [textareaRef.current]);
|
||||
|
||||
const handleCreate = () => {
|
||||
handleCreateItem(itemName, itemPrice, selectedImage, previewUrl);
|
||||
handleCreateItem(itemName, itemPrice, selectedImage, itemDescription);
|
||||
};
|
||||
const handleUpdate = () => {
|
||||
handleUpdateItem(itemName, itemPrice, selectedImage, previewUrl);
|
||||
console.log(itemDescription)
|
||||
handleUpdateItem(itemName, itemPrice, selectedImage, itemDescription);
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -189,7 +190,7 @@ const ItemConfig = ({
|
||||
resize: 'none', // Prevent manual resize that could cause overflow
|
||||
}}
|
||||
placeholder="Tambah deskripsi..."
|
||||
value={initialDescription}
|
||||
value={itemDescription}
|
||||
onChange={(e)=>setItemDescription(e.target.value)}
|
||||
onFocus={(e) => e.target.style.borderColor = '#60d37e'}
|
||||
onBlur={(e) => e.target.style.borderColor = '#ccc'}
|
||||
|
||||
@@ -166,7 +166,8 @@ const ItemLister = ({
|
||||
setPreviewUrl(previewUrl);
|
||||
};
|
||||
|
||||
const onCreateItem = async (itemName, itemPrice, selectedImage, previewUrl) => {
|
||||
const onCreateItem = async (itemName, itemPrice, selectedImage, previewUrl, description) => {
|
||||
console.log(description)
|
||||
if (isEdit)
|
||||
setItemsToCreate((prevItems) => [
|
||||
...prevItems,
|
||||
@@ -180,7 +181,7 @@ const ItemLister = ({
|
||||
},
|
||||
]);
|
||||
else {
|
||||
const newItem = await handleCreateItem(itemTypeId, itemName, itemPrice, selectedImage);
|
||||
const newItem = await handleCreateItem(itemTypeId, itemName, itemPrice, selectedImage, description);
|
||||
|
||||
console.log(newItem)
|
||||
if (newItem) {
|
||||
@@ -220,12 +221,12 @@ const ItemLister = ({
|
||||
);
|
||||
setisEditItem(0);
|
||||
};
|
||||
const onUpdateItem = (itemId, name, price, image) => {
|
||||
const onUpdateItem = (itemId, name, price, image, description) => {
|
||||
if (isEdit)
|
||||
setItemsToUpdate((prev) => [...prev, { itemId, name, price, image }]);
|
||||
setItemsToUpdate((prev) => [...prev, { itemId, name, price, image, description }]);
|
||||
else {
|
||||
console.log(itemId, name, price, image)
|
||||
handleUpdateItem(itemId, name, price, image);
|
||||
console.log(itemId, name, price, image, description)
|
||||
handleUpdateItem(itemId, name, price, image, description);
|
||||
|
||||
const itemIndex = items.findIndex((item) => item.itemId === itemId);
|
||||
if (itemIndex === -1) return; // Item not found
|
||||
@@ -339,12 +340,13 @@ const ItemLister = ({
|
||||
const handleSaveType = async () => {
|
||||
try {
|
||||
console.log(isVisible);
|
||||
console.log(typeNameInputRef)
|
||||
if (itemTypeId) {
|
||||
// Call the updateItemType function
|
||||
const updatedItemType = await updateItemType(
|
||||
shopId,
|
||||
itemTypeId,
|
||||
typeNameInputRef.current.value,
|
||||
editedTypeName,
|
||||
previewUrl,
|
||||
selectedImage,
|
||||
isVisible
|
||||
@@ -356,7 +358,7 @@ const ItemLister = ({
|
||||
if (itemType.itemTypeId === itemTypeId) {
|
||||
return {
|
||||
...itemType,
|
||||
name: updatedItemType.name || typeNameInputRef.current.value, // Update name if provided
|
||||
name: updatedItemType.name, // Update name if provided
|
||||
image: updatedItemType.image || itemType.image, // Update image if provided
|
||||
visibility: updatedItemType.visibility !== undefined ? updatedItemType.visibility : isVisible, // Update visibility if provided
|
||||
};
|
||||
@@ -365,6 +367,7 @@ const ItemLister = ({
|
||||
});
|
||||
});
|
||||
|
||||
console.log(itemsToUpdate)
|
||||
// Iterate through itemsToUpdate and call the API
|
||||
for (const {
|
||||
itemId,
|
||||
@@ -372,6 +375,7 @@ const ItemLister = ({
|
||||
name,
|
||||
price,
|
||||
image,
|
||||
description
|
||||
} of itemsToUpdate) {
|
||||
if (newAvailability != undefined) {
|
||||
await executeUpdateAvailability(
|
||||
@@ -405,7 +409,7 @@ const ItemLister = ({
|
||||
else {
|
||||
|
||||
// Call the handleUpdateItem function
|
||||
const updatedItem = await handleUpdateItem(itemId, name, price, image);
|
||||
const updatedItem = await handleUpdateItem(itemId, name, price, image, description);
|
||||
|
||||
// Update shopItems state
|
||||
setShopItems((prevShopItems) => {
|
||||
@@ -432,8 +436,8 @@ const ItemLister = ({
|
||||
}
|
||||
}
|
||||
console.log(itemsToCreate)
|
||||
for (const { name, price, selectedImage } of itemsToCreate) {
|
||||
const newItem = await handleCreateItem(itemTypeId, name, price, selectedImage);
|
||||
for (const { name, price, selectedImage, description } of itemsToCreate) {
|
||||
const newItem = await handleCreateItem(itemTypeId, name, price, selectedImage, description);
|
||||
console.log(newItem)
|
||||
if (newItem) {
|
||||
setShopItems((prevShopItems) => {
|
||||
@@ -471,10 +475,10 @@ const ItemLister = ({
|
||||
]);
|
||||
|
||||
// Loop through itemsToCreate and create each item
|
||||
for (const { name, price, selectedImage } of itemsToCreate) {
|
||||
for (const { name, price, selectedImage, description } of itemsToCreate) {
|
||||
// Call handleCreateItem to create a new item
|
||||
const newItem = await handleCreateItem(newItemType.itemTypeId, name, price, selectedImage);
|
||||
|
||||
const newItem = await handleCreateItem(newItemType.itemTypeId, name, price, selectedImage, description);
|
||||
|
||||
// If the item was created successfully, update the shopItems state
|
||||
if (newItem) {
|
||||
setShopItems((prevShopItems) =>
|
||||
@@ -541,7 +545,6 @@ const ItemLister = ({
|
||||
<div className={styles["title-container"]}>
|
||||
{isEdit && <ItemType blank={true} imageUrl={previewUrl} />}
|
||||
<input
|
||||
ref={typeNameInputRef}
|
||||
className={`${styles.title} ${isEdit ? styles.border : styles.noborder
|
||||
}`}
|
||||
value={editedTypeName}
|
||||
@@ -839,7 +842,7 @@ const ItemLister = ({
|
||||
imageUrl={item.image}
|
||||
imageFile={item.selectedImage}
|
||||
cancelEdit={() => editItem(0)}
|
||||
handleUpdateItem={(name, price, image) => { updateItemInCreate(item.itemId, name, price, image); setRandomKey(randomKey + 1); console.log(image) }
|
||||
handleUpdateItem={(name, price, image, description) => { updateItemInCreate(item.itemId, name, price, image, description); setRandomKey(randomKey + 1); console.log(image) }
|
||||
}
|
||||
/>
|
||||
)}
|
||||
@@ -907,8 +910,8 @@ const ItemLister = ({
|
||||
onRemoveClick={() => handleRemoveClick(item.itemId)}
|
||||
isBeingEdit={isEditItem == item.itemId}
|
||||
isAvailable={item.availability}
|
||||
handleUpdateItem={(name, price, image) =>
|
||||
updateItemInCreate(item.itemId, name, price, image)
|
||||
handleUpdateItem={(name, price, image, description) =>
|
||||
updateItemInCreate(item.itemId, name, price, image, description)
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
@@ -939,8 +942,9 @@ const ItemLister = ({
|
||||
}
|
||||
cancelEdit={() => editItem(0)}
|
||||
handleCreateItem={onCreateItem}
|
||||
handleUpdateItem={(name, price, image) => {
|
||||
onUpdateItem(item.itemId, name, price, image);
|
||||
handleUpdateItem={(name, price, image, description) => {
|
||||
console.log(description)
|
||||
onUpdateItem(item.itemId, name, price, image, description);
|
||||
setRandomKey(randomKey + 1); console.log(image);
|
||||
}
|
||||
}
|
||||
@@ -1002,6 +1006,7 @@ const ItemLister = ({
|
||||
name={item.name}
|
||||
price={item.price}
|
||||
qty={item.qty}
|
||||
description={item.description}
|
||||
imageUrl={
|
||||
itemTypeId ? getImageUrl(item.image) : item.image
|
||||
}
|
||||
@@ -1010,8 +1015,8 @@ const ItemLister = ({
|
||||
onRemoveClick={() => handleRemoveClick(item.itemId)}
|
||||
isBeingEdit={isEditItem == item.itemId}
|
||||
isAvailable={item.availability}
|
||||
handleUpdateItem={(name, price, image) =>
|
||||
onUpdateItem(item.itemId, name, price, image)
|
||||
handleUpdateItem={(name, price, image, description) =>
|
||||
onUpdateItem(item.itemId, name, price, image, description)
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -61,9 +61,9 @@ export default function ItemType({
|
||||
<div
|
||||
className={
|
||||
styles[
|
||||
namee
|
||||
? "item-type"
|
||||
: rectangular
|
||||
namee
|
||||
? "item-type"
|
||||
: rectangular
|
||||
? "item-type-rectangular"
|
||||
: "item-type-nomargin"
|
||||
]
|
||||
@@ -79,11 +79,66 @@ export default function ItemType({
|
||||
top: selected ? "-10px" : "initial",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={previewUrl}
|
||||
alt={namee}
|
||||
className={styles["item-type-image"]}
|
||||
/>
|
||||
{imageUrl != 'uploads/assets/All.png' ?
|
||||
<img
|
||||
src={previewUrl}
|
||||
alt={namee}
|
||||
className={styles["item-type-image"]}
|
||||
/>
|
||||
:<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.16, written by Peter Selinger 2001-2019
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M3708 7165 c-3 -4 -44 -10 -90 -15 -266 -28 -530 -91 -753 -180 -11
|
||||
-4 -42 -16 -70 -26 -27 -9 -129 -57 -225 -106 -186 -94 -188 -95 -262 -145
|
||||
-26 -18 -52 -33 -58 -33 -5 0 -24 -13 -42 -28 -18 -16 -53 -43 -78 -61 -124
|
||||
-88 -157 -114 -217 -168 -87 -78 -244 -236 -318 -318 -56 -63 -84 -99 -166
|
||||
-215 -18 -25 -47 -62 -66 -83 -18 -20 -33 -42 -33 -47 0 -6 -12 -29 -27 -53
|
||||
-15 -23 -32 -49 -38 -59 -30 -49 -194 -380 -209 -423 -10 -27 -22 -59 -26 -70
|
||||
-81 -203 -137 -426 -177 -700 -20 -137 -23 -692 -5 -830 24 -184 59 -380 73
|
||||
-407 5 -10 9 -23 9 -30 0 -25 78 -266 130 -403 25 -65 193 -392 237 -460 171
|
||||
-264 379 -510 591 -701 59 -52 114 -102 123 -110 9 -7 19 -14 23 -14 7 0 110
|
||||
-75 173 -125 17 -14 52 -37 78 -51 26 -13 61 -35 79 -49 17 -13 42 -28 56 -34
|
||||
14 -6 32 -15 40 -21 8 -5 67 -35 130 -66 63 -30 122 -59 130 -64 8 -4 33 -15
|
||||
55 -23 22 -8 83 -31 135 -50 94 -36 219 -71 410 -117 51 -12 201 -37 305 -50
|
||||
92 -12 651 -12 740 0 39 6 102 14 140 19 210 28 511 109 663 177 29 13 57 24
|
||||
62 24 19 0 251 111 357 170 53 30 88 51 118 70 17 11 43 27 59 36 30 16 103
|
||||
70 164 120 18 14 50 38 72 53 21 14 66 52 99 84 33 31 64 57 67 57 17 0 293
|
||||
299 337 363 16 23 38 53 51 67 19 21 118 164 151 218 6 9 25 38 43 64 17 26
|
||||
32 54 32 62 0 8 4 17 9 20 13 8 181 354 181 372 0 5 11 36 24 69 52 132 121
|
||||
391 146 545 6 41 17 95 23 120 8 31 12 168 12 430 0 326 -3 402 -18 495 -10
|
||||
61 -22 133 -27 160 -7 45 -22 107 -52 220 -6 22 -35 114 -65 205 -49 149 -97
|
||||
255 -240 533 -17 35 -81 136 -145 231 -29 41 -149 203 -175 235 -39 47 -342
|
||||
350 -383 384 -63 51 -297 222 -331 242 -19 11 -65 39 -104 62 -63 38 -193 104
|
||||
-361 184 -89 42 -370 133 -519 167 -192 44 -230 51 -340 64 -109 12 -697 23
|
||||
-707 13z m-553 -1586 c12 -23 15 -87 15 -359 l0 -332 -31 -29 -31 -29 -335 0
|
||||
-335 0 -29 29 -29 29 0 334 1 333 26 30 26 30 326 5 c179 3 339 1 354 -4 15
|
||||
-4 34 -21 42 -37z m1201 31 c50 -27 54 -57 54 -386 0 -251 -3 -310 -15 -334
|
||||
-31 -61 -28 -60 -390 -60 -298 0 -332 2 -351 18 -42 34 -44 48 -44 382 0 347
|
||||
1 354 56 383 31 16 658 13 690 -3z m1267 -31 c15 -27 17 -65 17 -359 l0 -328
|
||||
-31 -31 -31 -31 -328 0 c-218 0 -337 4 -353 11 -53 24 -57 52 -57 390 0 327 3
|
||||
354 47 375 23 11 660 22 693 11 14 -4 33 -21 43 -38z m-2504 -1203 c49 -26 51
|
||||
-42 51 -389 0 -296 -2 -324 -19 -353 -30 -49 -65 -54 -386 -54 -274 0 -289 1
|
||||
-325 21 -21 12 -43 32 -49 46 -7 16 -11 134 -11 350 l0 327 32 33 32 33 323 0
|
||||
c261 0 329 -3 352 -14z m1237 -2 c52 -35 54 -49 54 -379 0 -348 -2 -360 -69
|
||||
-394 -38 -20 -57 -21 -327 -21 -320 0 -355 5 -385 54 -17 29 -19 56 -19 356 1
|
||||
251 4 330 14 349 27 49 39 50 384 51 283 0 326 -2 348 -16z m1233 2 c49 -26
|
||||
51 -43 51 -386 0 -285 -2 -322 -17 -349 -33 -56 -61 -61 -384 -61 -271 0 -292
|
||||
1 -329 20 -69 35 -70 40 -70 394 l0 316 36 40 36 40 325 0 c261 0 329 -3 352
|
||||
-14z m-2475 -1226 c53 -20 56 -41 56 -389 0 -227 -3 -328 -12 -346 -24 -53
|
||||
-40 -55 -387 -55 l-320 0 -36 31 -35 31 0 335 0 335 34 34 34 34 320 0 c180 0
|
||||
332 -4 346 -10z m1243 -7 c50 -33 53 -57 53 -388 0 -254 -3 -311 -15 -335 -30
|
||||
-58 -43 -60 -389 -60 -223 0 -323 3 -341 12 -53 24 -55 39 -55 394 l0 326 34
|
||||
34 34 34 326 0 c291 0 330 -2 353 -17z m1227 7 c53 -20 56 -40 56 -396 l0
|
||||
-326 -34 -34 -34 -34 -326 0 c-358 0 -360 0 -392 61 -21 42 -21 637 1 679 30
|
||||
58 40 59 387 60 178 0 328 -4 342 -10z"/>
|
||||
</g>
|
||||
</svg>
|
||||
}
|
||||
{blank && rectangular && (
|
||||
<div className={styles["item-type-image-container"]}>
|
||||
<input
|
||||
|
||||
@@ -132,7 +132,7 @@ const ItemTypeLister = ({
|
||||
<ItemType
|
||||
name={"semua"}
|
||||
onClick={() => onFilterChange(0)}
|
||||
imageUrl={getImageUrl("uploads/assets/All.png")}
|
||||
imageUrl={"uploads/assets/All.png"}
|
||||
/>
|
||||
)}
|
||||
{itemTypes &&
|
||||
|
||||
Reference in New Issue
Block a user