חיפוש מתכון רנדומלי
הודעות
+ +אין שיחות עדיין
+ ) : ( + conversations.map((conv) => ( +שיחה חדשה
+אין חברים לשוחח איתם. הוסף חברים תחילה!
+ ) : ( + friends.map((friend) => ( + + )) + )} +{selectedConversation.name || selectedConversation.other_member_name || "שיחה"}
+אין הודעות עדיין. התחל את השיחה!
+ ) : ( + messages.map((msg) => ( +בחר שיחה או התחל שיחה חדשה
+Friends
+ + {/* Search Bar */} + + + {/* Tabs */} +No friends yet. Search for users to add!
+ ) : ( + friends.map((friend) => ( +No pending friend requests
+ ) : ( + requests.map((request) => ( +No users found
+ ) : ( + searchResults.map((user) => ( +{list.name}
+{list.name}
+ {list.is_pinned && 📌} +{list.is_owner ? "שלי" : `של ${list.owner_display_name}`} {" · "} @@ -501,18 +520,51 @@ function GroceryLists({ user, onShowToast }) {
בחר רשימת קניות כדי להציג את הפרטים
+אין רשימה נבחרת
+בחר רשימת קניות מהצד כדי להציג ולערוך את הפרטים
+⚠️ מחיקת רשימה
+האם אתה בטוח שברצונך למחוק רשימת קניות זו?
+פעולה זו אינה ניתנת לביטול!
+שתף רשימה: {showShareModal.name}
+שיתוף רשימה
+{showShareModal.name}
+משותף עם:
+🤝 משותף עם:
{shares.length === 0 ? ( -הרשימה לא משותפת עם אף אחד
+הרשימה לא משותפת עם אף אחד
+-
{shares.map((share) => (
-
- - {share.display_name} - @{share.username} - {share.can_edit && עורך} +)} + + {/* Ratings and Comments */} +👤+++ {share.display_name} + @{share.username} ++ {share.can_edit && ✏️ עורך}
); } diff --git a/frontend/src/components/RecipeFormDrawer.jsx b/frontend/src/components/RecipeFormDrawer.jsx index 860a5d7..c1efbbd 100644 --- a/frontend/src/components/RecipeFormDrawer.jsx +++ b/frontend/src/components/RecipeFormDrawer.jsx @@ -7,6 +7,7 @@ function RecipeFormDrawer({ open, onClose, onSubmit, editingRecipe = null, curre const [madeBy, setMadeBy] = useState(""); const [tags, setTags] = useState(""); const [image, setImage] = useState(""); + const [visibility, setVisibility] = useState("public"); const [ingredients, setIngredients] = useState([""]); const [steps, setSteps] = useState([""]); @@ -25,6 +26,7 @@ function RecipeFormDrawer({ open, onClose, onSubmit, editingRecipe = null, curre setMadeBy(editingRecipe.made_by || ""); setTags((editingRecipe.tags || []).join(" ")); setImage(editingRecipe.image || ""); + setVisibility(editingRecipe.visibility || "public"); setIngredients(editingRecipe.ingredients || [""]); setSteps(editingRecipe.steps || [""]); } else { @@ -34,6 +36,7 @@ function RecipeFormDrawer({ open, onClose, onSubmit, editingRecipe = null, curre setMadeBy(currentUser?.username || ""); setTags(""); setImage(""); + setVisibility("public"); setIngredients([""]); setSteps([""]); } @@ -107,6 +110,7 @@ function RecipeFormDrawer({ open, onClose, onSubmit, editingRecipe = null, curre ingredients: cleanIngredients, steps: cleanSteps, made_by: madeBy.trim() || currentUser?.username || "", + visibility: visibility, }; if (image) { @@ -149,17 +153,26 @@ function RecipeFormDrawer({ open, onClose, onSubmit, editingRecipe = null, curre