Ignore:
Timestamp:
09/18/22 18:09:53 (21 months ago)
Author:
Danilo <danilo.najkov@…>
Branches:
master
Parents:
49b0bbd
Message:

vip functionallity + menu fields + alergens filtering + google/fb login + email queueing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • frontend/src/Dashboard/Menu.js

    r49b0bbd r13f1472  
    11import React, {useEffect, useState} from 'react'
    2 import {Button, Form, Input, Card, notification} from "antd";
     2import {Button, Form, Input, Card, notification, Checkbox, message, Upload} from "antd";
    33import axios from "axios";
    44import env from "../env";
     5import {PlusOutlined} from "@ant-design/icons";
    56
    67const Menu = props => {
     
    2324    }
    2425
     26    const beforeUpload = (file) => {
     27        const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
     28        if (!isJpgOrPng) {
     29            message.error('Сликата мора да е формат jpg или png');
     30        }
     31        if(isJpgOrPng) setLoadingSave(true);
     32        return isJpgOrPng;
     33    }
     34    const uploadChanged = (ev) =>{
     35        if(ev.file.status == 'done'){
     36            getRestaurant()
     37        }
     38    }
     39
    2540    const addMenu = (data) => {
    2641        setLoadingSave(true);
     42        console.log(data)
    2743        axios.post(env.api + 'Menu/',{...data,price: parseInt(data.price)}, { headers: {Authorization: localStorage.getItem('Auth')}
    2844        }).then(res => {
     
    97113                    </Form.Item>
    98114                    <Form.Item
     115                        label="Алергени"
     116                        name="alergens"
     117                    >
     118                        <Input/>
     119                    </Form.Item>
     120                    <Form.Item
    99121                        label="Цена"
    100122                        name="price"
     
    109131                        <Input placeholder="Цена" type={'number'}/>
    110132                    </Form.Item>
     133                    <Form.Item
     134                        name="isVipOnly"
     135                        valuePropName="checked"
     136                    >
     137                        <Checkbox>Само за VIP</Checkbox>
     138                    </Form.Item>
    111139                    <Form.Item style={{textAlign: 'center'}}>
    112140                        <Button type="primary" htmlType="submit" loading={loadingSave}>
     
    118146            <div style={{textAlign:'start'}}>
    119147                {restaurant.menu.map(el =>
    120                     <Card title={el.title} extra={<p style={{color:'red',cursor:'pointer'}} onClick={()=>deleteMenu(el.id)}>Избриши</p>} style={{ width: 300, display:'inline-block', margin:'10px' }} size="small">
     148                    <Card key={el.id} title={el.title} extra={<div>{el.isVipOnly ? <span style={{color:'orange',fontWeight:'bold'}}>VIP </span>:''}<span style={{color:'red',cursor:'pointer'}} onClick={()=>deleteMenu(el.id)}>Избриши</span></div>} style={{ width: 300, display:'inline-block', margin:'10px' }} size="small">
     149                        <div style={{height:'100px', width:'270px'}}>
     150                            <Upload
     151                                name="file"
     152                                onChange={uploadChanged}
     153                                showUploadList={false}
     154                                beforeUpload={beforeUpload}
     155                                style={{height: '100px', overflow: 'hidden'}}
     156                                action={env.api+'Menu/'+el.id+'/upload'}
     157                            >
     158                                {el.image != "data:image/png;base64," ? <img style={{cursor: 'pointer'}} src={el.image} alt="avatar"
     159                                                                                           height='100px' width={'270px'}/> : <div style={{cursor:'pointer',margin: 15,border:'1px solid gray',padding: 5}}><PlusOutlined /><div style={{ marginTop: 8}}>Додади слика</div></div>}
     160                            </Upload>
     161                        </div>
    121162                        <p>{el.description}</p>
     163                        <p>Алергени: {el.alergens.length ==0 ? 'Нема' : el.alergens}</p>
    122164                        <b>{el.price} ден.</b>
    123165                    </Card>
Note: See TracChangeset for help on using the changeset viewer.