diff --git a/wannameal/src/components/savedMeals/SavedMeals.jsx b/wannameal/src/components/savedMeals/SavedMeals.jsx
index cee02a4..c4d38f5 100644
--- a/wannameal/src/components/savedMeals/SavedMeals.jsx
+++ b/wannameal/src/components/savedMeals/SavedMeals.jsx
@@ -1,172 +1,62 @@
-import React from "react";
+import React, { useEffect } from "react";
import style from "./savedMeals.module.css";
import MealCard from "../mealCard/mealCard";
+import { MdSmsFailed } from "react-icons/md";
+
import noMeals from "../../assets/nosavedmeals.gif";
-import { useSelector } from "react-redux";
-import { getSavedMeals } from "../../redux/slices/recomendedMealsSlice";
+import { useDispatch, useSelector } from "react-redux";
+import {
+ fetchSavedMeals,
+ getMealsError,
+ getMealsStatus,
+ getSavedMeals,
+} from "../../redux/slices/recomendedMealsSlice";
+import { getDecodedToken } from "../../redux/slices/authSlice";
+import Loading from "../loading/loading";
+import { getLanguage } from "../../redux/slices/language";
export default function SavedMeals() {
const savedMeals = useSelector(getSavedMeals);
+ const decodedToken = useSelector(getDecodedToken);
+ const mealsError = useSelector(getMealsError);
+ const mealsStatus = useSelector(getMealsStatus);
+ const savedmeal = useSelector(getSavedMeals);
+ console.log("🚀 ~ SavedMeals ~ savedmeal:", savedmeal);
+ const dispatch = useDispatch();
+ const language = useSelector(getLanguage);
+
+ useEffect(() => {
+ if (decodedToken?.id) {
+ const fetchMeals = async () => {
+ await dispatch(fetchSavedMeals({ userId: decodedToken?._id }));
+ };
+ fetchMeals();
+ }
+ }, []);
- const meals = [
- {
- index: 488,
- recipeName: "النجريسكو",
- time: "غداء",
- ingredients:
- "400 صدور دجاج، مخلية ومقطعة إلى قطع صغيرة الحجم. , الملح والفلفل حسب الذوق. , 2 فص الثوم مفروم. , 80 جم زيت زيتون. , 70 جم دقيق. , 400 مل لبن كامل الدسم. , 400 جم مكرونة بينا. , 100 جم جبنة شيدر مبشورة. , 50 جم جبنة بارميزان مبشورة. ",
- prep: " اطهى المكرونة وفقا للتعليمات على الكيس، ثم صفيها وضعيها جانباً. , فى هذه الأثناء فى حلة صلصة كبيرة، اضيفى زيت الزيتون، والدجاج، الثوم، والملح والفلفل، ثم حمريها على نار متوسطة إلى منخفضة، واطهى الدجاج مع التحريك المستمر، حتى لم يعد لونه وردى اضيفى الدقيق وقلبيه حتى يمتص كل السائل ويصبح كالمعجون الذى يغطى الدجاج. , ببطء اضيفى اللبن مع التحريك المستمر، حتى يكون لديكِ صلصة كريمية خفيفة من البشاميل. , ارفعى الحلة من على النار، اضيفى الجبن الشيدر وقلبيه حتى يتم توزيعه بشكل جيد. , اضيفي المكرونة المطبوخة وقلبيها حتى يتم توزيعها جيداً، صبى الخليط كله فى صينية فرن عميقة، ثم رشى على السطح الجبن البارميزان. , اخبزيها فى الفرن على 210درجة مئوية، حتى يصبح الوجه لونه بنياً ذهبياً، ثم تقدم ساخنة. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750274/WannaMeal/recommend/ocrxycya2j0ieo9suqg7.jpg",
- id: "WannaMeal/recommend/ocrxycya2j0ieo9suqg7",
- },
- calories: 1061,
- prep_time: 30,
- no_of_ppl: 4,
- },
- {
- index: 152,
- recipeName: "الأرز بالزعفران",
- time: "غداء",
- ingredients:
- " 400 جم أرز بسمتي مغسول. , 810 مل مرق دجاج أو مرق خضار. , 150 جم بصل أصفر مفروم ناعمًا. , 1 ملعقة صغيرة زعفران. , 60 مل ماء مغلي. , 2 ملعقة كبيرة زيت زيتون. , 1 ملعقة صغيرة ملح. ",
- prep: " ضعي الزعفران في وعاء صغير، ثم أضيفي الماء المغلي، وقلبي جيدًا، ثم اتركيه جانبًا لمدة خمس دقائق. , سخني الزيت في قدر كبير على نار متوسطة، ثم أضيفي البصل وقلبيه لمدة ثماني إلى عشر دقائق حتى يتكرمل. , أضيفي الأرز وقلبي لمدة دقيقة، ثم أضيفي خليط الزعفران والمرق والملح، وقلبي جيدًا، واتركيه حتى يغلي. , غطي القدر، واتركيه على نار هادئة مدة 30 دقيقة حتى ينضج. , ضعي الأرز في أطباق التقديم، وقدميه ساخنًا مع الدجاج والسلطات. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750275/WannaMeal/recommend/rqyhl3iqkk5fndudnjmu.jpg",
- id: "WannaMeal/recommend/rqyhl3iqkk5fndudnjmu",
- },
- calories: 454.99,
- prep_time: 50,
- no_of_ppl: 4,
- },
- {
- index: 154,
- recipeName: "الكوارع",
- time: "غداء",
- ingredients:
- " 1500 مل من الماء المغلي , 1000 جم كوارع مقطعة , بصلة كبيرة مفرومة ناعمًا , بصلة صغيرة مقطعة مكعبات صغيرة , 200 جم فلفل أخضر حار مفروم , 4 ثمرات طماطم مقشرة، ومفرومة ناعمًا , 6 فصوص ثوم مهروس , 2 ملعقة كبيرة خل أبيض , 4 معلقة كبيرة زيت , 1 ملعقة كبيرة زبدة في درجة حرارة الغرفة , 1 ملعقة كبيرة صلصة طماطم , 3 ورقات لورا , عود قرفة , 5 حبات حبهان , 4 حبات قرنفل , 1 ملعقة صغيرة فلفل أسود حصى , ملح وفلفل أسود ",
- prep: " انقعي الكوارع في ماء وخل وملح وعصير ليمون لمدة ساعة. , صفي الكوارع من الماء، واغسليها جيدًا تحت الماء الجاري مرتين. , على نار متوسطة، ضعي الكوارع والملح والفلفل الأسود، ثم غطيها بالماء، واتركيها حتى تغلي. , صفي الكوارع من الماء، واتركيها جانبًا. , على نار متوسطة، ضعي الزبدة ونصف كمية الزيت، واتركيهما حتى تذوب الزبدة. , أضيفي الكوارع، وقلبيها لمدة 5 دقائق، ثم أضيفي ورق اللورا والقرفة والحبهان والقرنفل والفلفل الحصى، وقلبي لمدة دقيقة. , أضيفي البصل المفروم، وقلبي لمدة دقيقتين، ثم أضيفي الماء، واتركيه حتى تغلي. , غطي القدر، واتركي الكوارع على نار هادئة جدًّا لمدة ساعة حتى تنضج. , على نار متوسطة، سخني الزيت، ثم أضيفي مكعبات البصل الصغيرة، وقلبيها حتى تذبل ويصفر لونها. , أضيفي الثوم والفلفل الحار، وقلبي لمدة دقيقة، ثم أضيفي الطماطم المفرومة وصلصة الطماطم والملح والفلفل الأسود، وقلبي لمدة دقيقة. , اتركي الصلصة على النار حتى تغلي، ثم غطي القرد واتركيها على نار هادئة جدًّا لمدة 10 دقائق. , أضيفي الخل واتركيها لمدة دقيقة، ثم أضيفي الكوارع، وكوبًا من شوربة الكوارع، واتركيها على نار هادئة لمدة 15 دقيقة، ثم قدميها ساخنة. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750275/WannaMeal/recommend/urvgyfbjd3aak0njsl6u.jpg",
- id: "WannaMeal/recommend/urvgyfbjd3aak0njsl6u",
- },
- calories: 150,
- prep_time: 105,
- no_of_ppl: 6,
- },
- {
- index: 155,
- recipeName: "فتة الكوارع",
- time: "غداء",
- ingredients:
- "1000 جم كوارع. , 300 جم أرز مصري. , 300 مل عصير طماطم طازج. , 300 جم خبز بلدي مقطع مكعبات. , بصلة متوسطة مفرومة فرمًا ناعمًا. , 3 معلقة كبيرة زبد. , 6 معلقة كبيرة زيت. , 3 معلقة كبيرة ثوم. , 60 مل خل. , 2 ورق لورا. , 5 حبات حبهان. , ملح وفلفل أسود. ",
- prep: " سخني الفرن عند درجة حرارة 200. , في وعاء كبير ضعي الخبز، و4 ملاعق من الزيت، وملعقة من الثوم، وقلبي جيدًا. , ضعي الخبز في صينية عليها ورق زبد، ثم ضعيها في الفرن لمدة 25 دقيقة، حتى يتحمص. , اغسلي الكوارع جيدًا. , على نار متوسطة ضعي كمية كبيرة من الماء، واتركيه حتى يغلي. , أضيفي الكوارع والملح والفلفل الأسود واللورا والحبهان والبصل المفروم، واتركيه لمدة 60 دقيقة حتى ينضج. , صفي الكوارع من الشوربة، ثم ضعيها في صينية، وضعيها في الفرن عند درجة حرارة 200 لمدة 30 دقيقة. , على نار متوسطة، ضعي الزيت و2 ملعقة من الزبد، وقلبي حتى يذوب الزبد. , أضيفي الأرز والملح، وقلبي لمدة 5 دقائق، ثم أضيفي 2 كوب من شوربة الكوارع، واتركيها حتى تغلي. , غطي القدر، واتركي الأرز على نار هادئة حتى ينضج. , على نار متوسطة، ذوّبي باقي الزبد، ثم أضيفي الثوم وقلبي لمدة دقيقة. , أضيفي الخل واتركيه يغلي، ثم أضيفي عصير الطماطم، واتركيه يغلي. , غطي القدر، واتركي الصلصة على نار هادئة لمدة 20 دقيقة. , في صينية بايركس، ضعي الخبز، ثم صبي عليه قليلًا من شوربة الكوارع. , ضعي الأرز فوق الخبز، ثم وزعي الصلصة على الأرز، ثم ضعي قطع الكوارع، وقدميها ساخنة. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750276/WannaMeal/recommend/jcwi0v1lfz1jnnww7ucp.jpg",
- id: "WannaMeal/recommend/jcwi0v1lfz1jnnww7ucp",
- },
- calories: 1023,
- prep_time: 120,
- no_of_ppl: 4,
- },
- {
- index: 156,
- recipeName: "الكوارع بالثوم",
- time: "غداء",
- ingredients:
- "2000 جم كوارع. , 2 ملعقة كبيرة ثوم مفروم. , 1 ملعقة كبيرة سمن. , 40 مل خل أبيض. , 2 ورقة لورا. , 5 حبات حبهان , ملح وفلفل أسود. ",
- prep: " سخني الفرن عند درجة حرارة 250، ثم ضعي فيه الطاجن ليسخن. , اغسلي الكوارع جيدًا. , على نار متوسطة، ضعي كمية كبيرة من الماء، واتركيه حتى يغلي. , أضيفي الكوارع والملح والفلفل الأسود والحبهان واللورا، واتركيها لمدة 60 دقيقة. , على نار متوسطة، ذوبي السمن، ثم أضيفي الثوم وقلبي لمدة دقيقة. , أضيفي الخل واتركيه حتى يغلي، ثم الكوارع وقلبي لمدة 5 دقائق. , ضعي الكوارع في الطاجن مع خليط الثوم والخل، ثم ضعيها في الفرن لمدة 30 دقيقة. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750276/WannaMeal/recommend/uq69ydcpueyslau3zpeu.jpg",
- id: "WannaMeal/recommend/uq69ydcpueyslau3zpeu",
- },
- calories: 353,
- prep_time: 120,
- no_of_ppl: 6,
- },
- {
- index: 157,
- recipeName: "ورق العنب بالكوارع",
- time: "غداء",
- ingredients:
- " كارع بقري كبير. , بصلة كبيرة مفرومة ناعمًا. , 1 ملعقة كبيرة ثوم مهروس. , 1 ملعقة كبيرة زيت. , ساق كرفس كبير مفروم. , ملح وفلفل أسود. , 2 ورقة غار لورا . , ماء مغلي. ",
- prep: " اغسلي الكارع تحت الماء الجاري، ثم انقعيه في محلول ملحي مع عصير ليمون وخل أبيض وبيكربونات صودا، واتركيه ساعة. , اغسلي الكارع مرات عدة تحت الماء الجاري، ثم قطعيه إلى قطع متوسطة الحجم. , ضعي كمية من الماء في قدر كبيرة على نار متوسطة، واتركيه حتى يغلي. , أضيفي الكوارع، واتركيها تغلي مع الماء 15 دقيقة، ثم صفيها من الماء، واغسليها مرةً أخرى تحت الماء الجاري. , سخني الزيت في قدر كبيرة على نار متوسطة، ثم أضيفي الكوارع، وقلبيها حتى تُصبح ذهبية اللون. , أضيفي البصل والكرفس والثوم وورق الغار، وقلبي دقيقتين. , أضيفي الملح والفلفل الأسود والماء المغلي، واتركيه حتى يغلي مع الكوارع. , غطي القدر، واتركيها على نار هادئة من ساعتين إلى ثلاث ساعات، حتى تنضج الكوارع. , صفي الكوارع من الشوربة، وتخلصي من العظم، واتركيها جانبًا. , ضعي الأرز والبقدونس والكزبرة والشبت والبصل والطماطم والزيت وصلصة الطماطم والثوم والبهارات السبعة والكزبرة والكمون والسكر والقرفة ومكعب المرق والملح والفلفل الأسود في وعاء كبير، وقلبي جيدًا حتى تمتزج المكونات. , افردي الورقة، ثم ضعي ملعقة من خليط الأرز على طرف الورقة، ثم اثني الطرفين إلى الداخل، ولفي الورقة كالرول. , رصي شرائح البطاطس في قدر كبيرة، ثم وزعي الكوارع المخلية من العظم فوق البطاطس، ثم رصي ورق العنب فوق الكوارع. , ضعي طبقًا فوق ورق العنب، حتى لا ينفتح الورق في أثناء الطهي. , أضيفي عصير الليمون إلى كوبين من مرق الكوارع، وقلبي جيدًا. , صبي المرق فوق ورق العنب حتى يُغطيه، ثم ضعيه على نار متوسطة، واتركيه حتى يغلي. , غطي القدر، واتركيها على نار هادئة جدًا ساعة، حتى ينضج ورق العنب. , اقلبي ورق العنب في طبق التقديم، ثم قدميه ساخنًا. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750277/WannaMeal/recommend/pfr96rh0q8gq8o8iaylx.jpg",
- id: "WannaMeal/recommend/pfr96rh0q8gq8o8iaylx",
- },
- calories: 781.35,
- prep_time: 120,
- no_of_ppl: 6,
- },
- {
- index: 158,
- recipeName: "الكرعين بالحمص",
- time: "غداء",
- ingredients:
- " 250 جم حمص منقوع ومصفى. , 120 جم بقدونس صغيرة مفرومة. , 200 جم فلفل أحمر حار. , 1500 جم كرعين كوارع مقطعة شرائح سميكة. , 4 بصلات متوسطة الحجم مقطعة شرائح. , 2 ساق كراث مقطع شرائح. , 6 فصوص ثوم. , 2 ملعقة كبيرة زيت زيتون. , 2 عود قرفة. , 1 ملعقة صغيرة كركم. , 1 ملعقة صغيرة كزبرة جافة مطحونة. , 1 ملعقة صغيرة كمون مطحون. , 1 ملعقة صغيرة زنجبيل. , 1 ملعقة صغيرة بابريكا. , ملح وفلفل أسود. ",
- prep: " اغسلي الكوارع تحت الماء الجاري، ثم انقعيه في محلول ملحي مع عصير ليمون وخل أبيض وبيكربونات صودا، واتركيه لمدة ساعة، ثم اغسليه عدة مرات تحت الماء الجاري. , ضعي كمية من الماء في قدر كبير على نار متوسطة، واتركيه حتى يغلي. , أضيفي الكوارع، واتركيها تغلي مع الماء لمدة 15 دقيقة، ثم صفيها، واغسليها مرةً أخرى تحت الماء الجاري. , ضعي الكوارع في قدر كبير على نار متوسطة، ثم أضيفي الزيت والقرفة والكركم والكزبرة والكمون والزنجبيل والبابريكا والملح والفلفل الأسود والكراث والثوم والبصل، ثم اغمريها بالماء المغلي. , اتركي الماء يغلي مع الكوارع والبهارات، ثم غطي القدر، واتركيه على نار هادئة لمدة ساعتين حتى تنضج الكوارع. , أضيفي الحمص والفلفل الحار ونصف كمية البقدونس وكوبين من الماء المغلي، وقلبي جيدًا. , غطي القدر واتركيه على نار هادئة لمدة ساعة حتى ينضج الحمص. , ارفعي الكوارع عن النار، ثم أضيفي البقدونس وقلبي جيدًا. , ضعي الكرعين بالحمص في طبق التقديم، وقدميها ساخنة مع الكسكسي أو الأرز. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750277/WannaMeal/recommend/e7admkqjphqob7nxmjo0.jpg",
- id: "WannaMeal/recommend/e7admkqjphqob7nxmjo0",
- },
- calories: 1291.26,
- prep_time: 180,
- no_of_ppl: 6,
- },
- {
- index: 159,
- recipeName: "المندي الأردني",
- time: "غداء",
- ingredients:
- " 400 جم أرز بسمتي. , 875 مل ماء مغلي. , 1800 جم دجاج مقطعة ثماني قطع ومغسولة جيدًا. , 2 بصلة كبيرة مقطعتان شرائح متوسطة. , 200 جم طماطم مقشرة ومقطعة مكعبات صغيرة. , 2 فص ثوم. , 3 معلقة كبيرة زبادي. , 3 معلقة كبيرة ماء. , 4 معلقة كبيرة زيت. , 1 ملعقة صغيرة بهارات مشكلة. , 1 ملعقة صغيرة كمون. , 1 ملعقة صغيرة كركم. , 1 ملعقة صغيرة بودرة زعفران. , عود قرفة. , 2 ورقة غار لورا . , 1 ملعقة صغيرة عصير ليمون. , 1 ملعقة صغيرة خيوط زعفران , 2 ملعقة كبيرة ماء ورد. , مكعب مرق دجاج مطحون. , ملح وفلفل أسود. ",
- prep: " ضعي الزبادي وملعقتين من الزيت والبهارات والكركم وبودرة الزعفران وعصير الليمون والملح والفلفل الأسود والماء، وقلبي جيدًا حتى تمتزج المكونات. , أضيفي الدجاج، وقلبي جيدًا، وغطي الوعاء بورق نايلون، ثم ضعيه في الثلاجة مدة ساعة. , سخني الفرن عند درجة حرارة 200 درجة مئوية. , سخني باقي الزيت في صينية ألومنيوم أو تيفال على نار متوسطة، ثم أضيفي البصل وقلبي من ثلاث إلى أربع دقائق حتى يذبل. , أضيفي الثوم، وقلبي 30 ثانية، ثم أضيفي الطماطم وعود القرفة وورق الغار والملح والفلفل الأسود، وقلبي جيدًا. , أضيفي مكعب المرق والأرز، وقلبي جيدًا، ثم أضيفي الماء المغلي، واتركي الخليط حتى يغلي على النار. , غطي الصينية بورق قصدير (فويل) جيدًا، ثم اصنعي به عدة فتحات باستخدام سيخ خشبي أو شوكة. , رصي الدجاج فوق الفويل، ثم غطيه بورق فويل آخر جيدًا. , ضعي الصينية في الفرن مدة 90 دقيقة. , صفي خيوط الزعفران من ماء الورد، واحتفظي بالماء جانبًا. , بعد نضج الدجاج والأرز، انقلي الدجاج في صينية، واتركيه مكشوفًا، ثم ضعيه في الفرن 15 دقيقة حتى يحمر الوجه. , أخرجي الأرز، ووزعي ماء الورد بالزعفران على الوجه، ثم ضعي ورقة قصدير في منتصف الأرز، وضعي بها الفحم المشتعل، ثم أضيفي قطرات الزيت إلى الفحم. , غطي الصينية بسرعة بورقة قصدير جديدة، واتركيها جانبًا من ثلاث إلى أربع دقائق. , ارفعي الفحم، وقلبي الأرز، ثم ضعيه في طبق التقديم. , وزعي الدجاج على الوجه، وقدميه ساخنًا مع سلطة الزبادي بالخيار. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750278/WannaMeal/recommend/hy5aq4dgm3djyfpwvakv.jpg",
- id: "WannaMeal/recommend/hy5aq4dgm3djyfpwvakv",
- },
- calories: 1314.07,
- prep_time: 120,
- no_of_ppl: 4,
- },
- {
- index: 160,
- recipeName: "مندي دجاج",
- time: "غداء",
- ingredients:
- "1000 جم أرز بسمتي , 1 ملعقة زعفران , 1 ملعقة قرفة , ورق الغار اللاوري , حبهان هيل حسب الرغبة , ملح , فلفل أسود , بهارات مشكلة , دجاجة , بصل مفروم , مكسرات وزبيب وصنوبر يتم تشويحها ",
- prep: " اغسلي الأرز وانقعيه لنصف ساعة في ماء دافئ. , قطعي الدجاجة إلى ثمانية قطع , شوحي البصل في قدر كبير وعميق إلى أن يصبح لونها ذهبيًا داكنًا , أضيفي الدجاج وقلبيه حتى يصبح ذهبيًا ويبدأ في إنزال دهونه , ضعي القرفة والغار والحبهان والتوابل , ضعي بعض الماء واتركيه على نار هادئة لمدة نصف ساعة حتى تشعري أنه قد نضج تمامًا , في كوب صغير ضعي بعض الماء الدافئ وأذيبي الزعفران. , أضيفي قليل جدًا من الكمية على الدجاج وقلبي. , ارفعيه من النار وضعيه في صينية ولفيه بورق الألومنيوم وضعيه في الفرن. , في قدر آخر، ضعي 6 أكواب من الماء مع قطعتين من مكعبات الدجاج، أو 6 أكواب من المرق (يحتاج البسمتي إلى ماء أكثر من الأرز الأبيض). , تبلي الماء بما تريدين من توابل ويمكنك وضع ليمون مجفف معه , ضعي ملعقة من الزعفران على الماء , بعد الغليان أضيفي الأرز بعد تصفيته، ثم بعد الغليان اتركيه على نار هادئة , قرب النضح ضعي بقية كمية الزعفران على جانب واحد من القدر، وبذلك يكون جميع الأرز أصفر عدا بعض الأرز يصبح برتقالي اللون , قبل التقديم قلبي الأرز جيدًا لتتناغم الألوان , ضعي الأرز والدجاج عليه وزينيه بالمكسرات. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750279/WannaMeal/recommend/rvkifnr62m7xeoi0qoxv.jpg",
- id: "WannaMeal/recommend/rvkifnr62m7xeoi0qoxv",
- },
- calories: 460,
- prep_time: 90,
- no_of_ppl: 6,
- },
- {
- index: 161,
- recipeName: "مندي اللحم",
- time: "غداء",
- ingredients:
- "1000 جم لحم , 4حبات طماطم , 4 حبات بصل يقطع شرائح , فلفل أسود نصف ملعقة , ملح وبهارات حسب الرغبه , فنجان زيت , حبهان , زعتر اختياري , فحم ",
- prep: " اغسلي اللحم وقطعيه إلى قطع كبيرة ثم صفيه من الماء تماماً , ضعي اللحم في القدر وارفعيه على نار هادئة حتى ينشف ماتم به من الماء مع ملاحظة تغطية القدر , اضيفي إليه البصلة بعد تقشيرها و8 كأسات ماء ساخن واتركيه على النار لمدة نصف ساعة ثم أضيفي الحبهان والملح اللازم واتركيه على النار حتى يكمل نضجه , اغسلي الأرز واتركيه حتى ينقع لمدة نصف ساعة , عندما ينضج اللحم انشليه من المرق وصفي المرق بصافية سلك وأعيديه إلى القدر , اخلطي الفلفل الأسود مع الزعفران وملعقة طعام زيت وقليل من الملح وتبلي بها اللحم ولفيه في ورق فويل وأدخليه الفرن لمدة ربع ساعة حتى يتحمر , صفي الأرز من ماء النقع وضعيه في مرق اللحم المغلي سابقاً واتركيه حتى ينضج ويشرب ماؤه , اضيفي الزعفران إلي اﻷرز , اشعلي قطعة الفحم حتى تصبح جمراً , اعملي حفرة في الأرز وخذي قطعة من الفويل لتضعي بها الفحم المشتعل وصبي على الفحم الزيت وغطي القدر بسرعة , اتركي القدر على النار لمدة عشر دقائق حتى يستوي الأرز , اغرفي الأرز في صحن التقديم وضعي اللحم عليه و قدميه بالهناء و الشفاء. ",
- image: {
- url: "https://res.cloudinary.com/dz5dpvxg7/image/upload/v1718750279/WannaMeal/recommend/wsgpacbirsqlcberazqo.jpg",
- id: "WannaMeal/recommend/wsgpacbirsqlcberazqo",
- },
- calories: 458,
- prep_time: 50,
- no_of_ppl: 8,
- },
- ];
+ if (mealsStatus === "loading")
+ return (
+
+
+
+ );
+
+ if (mealsError)
+ return (
+
+ );
return (
<>
- {meals && meals.length > 0 ? (
- meals.map((meal) => {
+ {savedMeals && savedMeals.length > 0 ? (
+ savedMeals.map((meal) => {
return ;
})
) : (
diff --git a/wannameal/src/redux/slices/recomendedMealsSlice.jsx b/wannameal/src/redux/slices/recomendedMealsSlice.jsx
index 19418d6..5551a03 100644
--- a/wannameal/src/redux/slices/recomendedMealsSlice.jsx
+++ b/wannameal/src/redux/slices/recomendedMealsSlice.jsx
@@ -7,6 +7,7 @@ const initialState = {
savedMeals: [],
myRecipes: [],
commonMeals: [],
+ savedMeal: null,
status: "idle",
error: null,
};
@@ -45,7 +46,7 @@ export const recommendMeals = createAsyncThunk(
// {
// method: 'GET',
// headers: {
-// // token: token,
+// token: token,
// 'Content-Type': 'application/json'
// }
// }
@@ -76,7 +77,28 @@ export const fetchSavedMeals = createAsyncThunk(
const response = await axios.get(
`https://fast-plat1.vercel.app/meals?isSaved=true&id=${userId}`
);
- return response.result;
+ return response.data.result;
+ } catch (error) {
+ return rejectWithValue(error.message);
+ }
+ }
+);
+
+export const saveMeal = createAsyncThunk(
+ "meals/saveMeal",
+ async ({ mealData, token, mealId }, { rejectWithValue }) => {
+ try {
+ const response = await axios.post(
+ `https://fast-plat1.vercel.app/meals/isSaved?id=${mealId}`,
+ mealData,
+ {
+ headers: {
+ token: token,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+ return response;
} catch (error) {
return rejectWithValue(error.message);
}
@@ -96,10 +118,10 @@ export const fetchMyRecipes = createAsyncThunk(
);
export const fetchCommonMeals = createAsyncThunk(
"meals/fetchCommonMeals",
- async ({ token }, { rejectWithValue }) => {
+ async ({ token, lang }, { rejectWithValue }) => {
try {
const response = await axios.get(
- `https://fast-plat1.vercel.app/meals/common-meals`,
+ `https://fast-plat1.vercel.app/meals/common-meals?lang=${lang}`,
{
headers: {
token: `${token}`,
@@ -177,6 +199,14 @@ const mealsSlice = createSlice({
.addCase(fetchCommonMeals.rejected, (state, action) => {
state.status = "failed";
state.error = action.payload;
+ })
+ .addCase(saveMeal.fulfilled, (state, action) => {
+ state.savedMeal = action.payload;
+ state.status = "succeededddd";
+ })
+ .addCase(saveMeal.rejected, (state, action) => {
+ state.savedMeal = action.payload;
+ // state.status = "rejected";
});
},
});
@@ -186,6 +216,7 @@ export const getSingleMeal = (state) => state.meals.singleMeal;
export const getSavedMeals = (state) => state.meals.savedMeals;
export const getMyRecipes = (state) => state.meals.myRecipes;
export const getCommonMeals = (state) => state.meals.commonMeals;
+export const getsSavedMeal = (state) => state.meals.savedMeal;
export const getMealsStatus = (state) => state.meals.status;
export const getMealsError = (state) => state.meals.error;
From ff5d170ea04424d63e13b6488a9a6df4cb68ab8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=AAEhab=20Yousef=E2=80=AC=E2=80=8F?=
<74505597+ehabyousef@users.noreply.github.com>
Date: Sat, 6 Jul 2024 03:10:18 +0300
Subject: [PATCH 11/24] dash color
---
.../src/components/dashNav/page.module.css | 8 ++++----
.../pagination/pagination.module.css | 4 ++--
.../src/components/sidebar/page.module.css | 2 +-
.../src/pages/RecipeDetails/RecipeDetails.jsx | 9 ++-------
.../defaultDash/dashboard.module.css | 6 +++---
.../dashboeard/ingredients/ingredients.jsx | 4 ++--
.../ingredients/ingredients.module.css | 2 +-
.../src/pages/dashboeard/recipes/recipes.jsx | 19 ++++++++++++++++---
.../pages/dashboeard/users/users.module.css | 6 +++---
9 files changed, 34 insertions(+), 26 deletions(-)
diff --git a/wannameal/src/components/dashNav/page.module.css b/wannameal/src/components/dashNav/page.module.css
index 9af7db3..60cd13f 100644
--- a/wannameal/src/components/dashNav/page.module.css
+++ b/wannameal/src/components/dashNav/page.module.css
@@ -4,7 +4,7 @@
align-items: center;
position: relative;
border-radius: 12px;
- background: #fff;
+ background: var(--text_white);
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.25);
}
@@ -17,8 +17,8 @@
border: 2px solid transparent;
border-radius: 8px;
outline: none;
- background-color: #fff;
- color: #0d0c22;
+ background-color: var(--text_white);
+ color: var(--text_black);
transition: 0.3s ease;
}
@@ -34,7 +34,7 @@
}
.backIcon {
border-radius: 8px;
- background: #fff;
+ background: var(--text_white);
box-shadow: 0px 0px 7px 2px rgba(0, 0, 0, 0.25);
padding: 0.5rem;
}
diff --git a/wannameal/src/components/pagination/pagination.module.css b/wannameal/src/components/pagination/pagination.module.css
index ae23323..c0aa6e3 100644
--- a/wannameal/src/components/pagination/pagination.module.css
+++ b/wannameal/src/components/pagination/pagination.module.css
@@ -4,9 +4,9 @@
.number_btn button {
padding: 5px 14px;
- color: var(--text_black);
+ color: var(--text_white);
border-radius: 7px;
- background: #ffffff;
+ background: var(--text_black);
transition: 1s;
border: 1px solid #eff3fd;
}
diff --git a/wannameal/src/components/sidebar/page.module.css b/wannameal/src/components/sidebar/page.module.css
index b4cc65e..bfaf17e 100644
--- a/wannameal/src/components/sidebar/page.module.css
+++ b/wannameal/src/components/sidebar/page.module.css
@@ -4,7 +4,7 @@
left: 0;
min-height: 100vh;
width: 400px;
- background: #fff;
+ background: var(--text_white);
box-shadow: 4px 0px 26px 0px rgba(0, 0, 0, 0.08);
padding: 3rem 0.7rem;
}
diff --git a/wannameal/src/pages/RecipeDetails/RecipeDetails.jsx b/wannameal/src/pages/RecipeDetails/RecipeDetails.jsx
index f7025c8..545b1f3 100644
--- a/wannameal/src/pages/RecipeDetails/RecipeDetails.jsx
+++ b/wannameal/src/pages/RecipeDetails/RecipeDetails.jsx
@@ -6,6 +6,7 @@ import { BsDiagram3, BsFire } from "react-icons/bs";
import { useLocation } from "react-router-dom";
import MealCard from "../../components/mealCard/mealCard";
+import CommonMeals from "../../components/commonMeals/commonMeals";
const RecipeDetails = () => {
const location = useLocation();
@@ -130,13 +131,7 @@ const RecipeDetails = () => {
Latest Recipes
- {x.map((x) => {
- return (
-
-
-
- );
- })}
+
);
diff --git a/wannameal/src/pages/dashboeard/defaultDash/dashboard.module.css b/wannameal/src/pages/dashboeard/defaultDash/dashboard.module.css
index dc524d8..af6c2e9 100644
--- a/wannameal/src/pages/dashboeard/defaultDash/dashboard.module.css
+++ b/wannameal/src/pages/dashboeard/defaultDash/dashboard.module.css
@@ -1,6 +1,6 @@
.state_div {
border-radius: 10px;
- background: #fff;
+ background: var(--text_white);
box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.25);
}
.card_image {
@@ -16,14 +16,14 @@
border-radius: 8px;
background: var(--green);
box-shadow: 0px 4px 16px 0px rgba(90, 85, 210, 0.4);
- color: white;
+ color: var(--text_white);
}
.Team_Icon {
background-color: red;
width: 40px;
height: 40px;
border-radius: 8px;
- background: #783efd;
+ background: var(--light_burble);
box-shadow: 0px 4px 16px 0px rgba(159, 152, 254, 0.64);
padding: 8px;
color: var(--text_white);
diff --git a/wannameal/src/pages/dashboeard/ingredients/ingredients.jsx b/wannameal/src/pages/dashboeard/ingredients/ingredients.jsx
index 5dc9adf..467f4f0 100644
--- a/wannameal/src/pages/dashboeard/ingredients/ingredients.jsx
+++ b/wannameal/src/pages/dashboeard/ingredients/ingredients.jsx
@@ -26,11 +26,11 @@ export default function Ingredients() {
const totalPages = Math.ceil(ingredients.length / INGR_PER_PAGE);
return (
-