%PDF- %PDF-
Direktori : /home/opti/public_html/ncf/static/js/ |
Current File : /home/opti/public_html/ncf/static/js/31.54494438.chunk.js.map |
{"version":3,"sources":["app/layout/components/SliderBar/SliderBar.js","app/main/blog/components/tagbar/tagbar.js","app/main/blog/components/slider/styles.js","app/main/blog/components/slider/Slider.js","../node_modules/reactstrap/es/CardText.js","app/main/blog/components/TagSidebar.js","app/main/blog/Single.js"],"names":["SliderBar","userId","localStorage","getItem","useState","cart","setCart","useEffect","fetch","SERVER_URL","then","res","json","status","data","console","log","noOfItems","length","className","href","src","alt","Tagbar","categories","setCategories","message","currenttag","slice","indexofLasttag","collapseOnSelect","expand","variant","Toggle","aria-controls","Collapse","id","map","category","Link","name","Slider","styled","div","SwiperCore","use","Pagination","_excluded","propTypes","tag","tagPropType","PropTypes","string","cssModule","object","CardText","props","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","React","createElement","_extends","defaultProps","Search","Input","TagSidebar","recentposts","setrecentPosts","currentposts","indexofLastpost","placeholder","size","onSearch","value","window","location","CLIENT_URL","post","xs","md","image","title","Blog","queryString","search","postId","URLSearchParams","get","description","created_at","cat","setPost","top","width","dangerouslySetInnerHTML","__html"],"mappings":"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","file":"static/js/31.54494438.chunk.js","sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport {SERVER_URL, CLIENT_URL} from '../../../config/server';\r\nimport \"swiper/swiper.min.css\";\r\nimport \"swiper/components/pagination/pagination.min.css\"\r\nimport \"./sliderbar.css\"\r\n\r\nfunction SliderBar(){\r\n\r\n const userId = localStorage.getItem('loggedInUser');\r\n const [cart, setCart] = useState([])\r\n\r\n useEffect(() => {\r\n const fetchcart =() =>{\r\n fetch(`${SERVER_URL}/cart/all/${userId}`)\r\n .then(res => res.json())\r\n .then(json => {\r\n if(json.status === 200){\r\n setCart(json.data);\r\n }else{\r\n console.log(json);\r\n }\r\n });\r\n \r\n \r\n }\r\n\r\n fetchcart()\r\n }, []);\r\n\r\n\r\n const noOfItems = cart.length;\r\n\r\n return(\r\n <div className=\"sliderbardiv sm:mb-20\">\r\n <div className=\"flex sliderbar shadow-sm -mt-9 field-bottom\">\r\n <a href=\"/shop\" className=\"no-underline bg-white sliderbar-link text-black flex flex-col items-center justify-center md:py-0 py-8 w-48 broder-0 border-r border-solid\">\r\n <span className=\"mb-2\">\r\n <img src=\"/assets/images/icons/shop.svg\" alt=\"\" />\r\n </span>\r\n <span>Shop</span>\r\n </a>\r\n <a href=\"/cart\" className=\"no-underline bg-white sliderbar-link text-black flex flex-col items-center justify-center md:py-0 py-8 w-48 broder-0 border-r border-solid\">\r\n <span className=\"mb-2\">\r\n <img src=\"/assets/images/icons/shopping-cart.svg\" alt=\"\" />\r\n </span>\r\n <span>Cart <span className=\"cartNumber\"> {noOfItems}</span></span>\r\n </a>\r\n <a href=\"/donate\" className=\"no-underline bg-white sliderbar-link text-black flex flex-col items-center justify-center md:py-0 py-8 w-48\">\r\n <span className=\"mb-2\">\r\n <img src=\"/assets/images/icons/donation.svg\" alt=\"\" />\r\n </span>\r\n <span>Donate</span>\r\n </a>\r\n </div>\r\n </div>\r\n )\r\n}\r\nexport default SliderBar;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Navbar, Nav, Container, } from 'react-bootstrap';\r\nimport { Row, Col } from 'reactstrap';\r\nimport './tagbar.css';\r\nimport {SERVER_URL} from '../../../../config/server';\r\n\r\nfunction Tagbar(){\r\n\r\n\r\n const [categories, setCategories] = useState([]);\r\n\r\n useEffect(() => {\r\n const fetchPosts =() =>{\r\n fetch(`${SERVER_URL}/blog/category`)\r\n .then(res => res.json())\r\n .then(json => {\r\n console.log(json.message, 'json')\r\n if(json.status === 200){\r\n setCategories(json.data);\r\n }else{\r\n console.log(\"Oops couldn't fetch data\");\r\n }\r\n });\r\n \r\n }\r\n \r\n fetchPosts();\r\n }, []);\r\n const tagPerPage = 5\r\n const indexofLasttag = 1 * tagPerPage;\r\n const indexofFirsttag = indexofLasttag - tagPerPage;\r\n const currenttag = categories.slice(indexofFirsttag,indexofLasttag)\r\n\r\n return(\r\n <Navbar collapseOnSelect expand=\"lg\" className=\"bg-gray-200\" variant=\"light\">\r\n <Container>\r\n <Navbar.Toggle aria-controls=\"responsive-navbar-nav\" />\r\n <Navbar.Collapse id=\"responsive-navbar-nav\">\r\n <Nav className=\"navbarNav\">\r\n {\r\n currenttag.map((category) =>(\r\n <Nav.Link className=\"font-bold text-black\" href={`/blog/tag?id=${category.id}`}>{category.name}</Nav.Link>\r\n ))\r\n }\r\n </Nav>\r\n </Navbar.Collapse>\r\n </Container>\r\n </Navbar>\r\n )\r\n}\r\n\r\nexport default Tagbar;\r\n","import styled from \"styled-components\"\r\n\r\nconst Slider = styled.div`\r\n position: relative;\r\n height: 700px;\r\n\tborder: 1px solid #eee\r\n\r\n background: #eee;\r\n font-family: 'Roboto', Helvetica Neue, Helvetica, Arial, sans-serif;\r\n font-size: 14px;\r\n color: rgb(39, 38, 38);\r\n margin: 0;\r\n padding: 0;\r\n\r\n\t.swiper-container {\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t}\r\n\r\n\t.swiper-slide {\r\n\t\tfont-size: 18px;\r\n\t\tbackground: transparent;\r\n\r\n\t\t/* Center slide text vertically */\r\n\t\tdisplay: -webkit-box;\r\n\t\tdisplay: -ms-flexbox;\r\n\t\tdisplay: -webkit-flex;\r\n\t\tdisplay: flex;\r\n\t\t-webkit-box-pack: center;\r\n\t\t-ms-flex-pack: center;\r\n\t\t-webkit-justify-content: center;\r\n\t\tjustify-content: center;\r\n\t\t-webkit-box-align: center;\r\n\t\t-ms-flex-align: center;\r\n\t\t-webkit-align-items: center;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.swiper-slide img {\r\n\t\tdisplay: block;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tobject-fit: cover;\r\n\t}\r\n\r\n\t.swiper-slide .slider-wrapper {\r\n\t\tdisplay: block;\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tobject-fit: cover;\r\n\t}\r\n\r\n\t.slider-text {\r\n\t\tposition: absolute;\r\n\t\theight: 100%;\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.field-bottom {\r\n\t\ttransform: translate(10%, 320px);\r\n\t}\r\n\r\n\t@media screen and (max-width: 640px) {\r\n\t\t.field-bottom {\r\n\t\t\ttransform: translate(0%, 0%);\r\n\t\t}\r\n\t}\r\n`\r\n\r\nexport default Slider","\r\nimport React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SliderContainer from \"./styles\"\r\nimport SliderBar from \"../../../../layout/components/SliderBar/SliderBar\"\r\n\r\nimport \"swiper/swiper.min.css\";\r\nimport \"swiper/components/pagination/pagination.min.css\"\r\n\r\nimport SwiperCore, { Pagination } from 'swiper/core';\r\n\r\nSwiperCore.use([Pagination]);\r\n\r\nfunction Slider() {\r\n return (\r\n <SliderContainer className=\"mt-6\">\r\n <SwiperSlide>\r\n <div className=\"slider-wrapper bg-black\">\r\n <div className=\"\">\r\n <div className=\"max-w-7xl mx-auto pb-16 pt-48 md:px-16 px-8\">\r\n <div className=\"grid md:grid-cols-1 text-center grid-cols-1 gap-x-8 gap-y-8\">\r\n <div className=\"content blogBanner\">\r\n <h1 className=\"text-6xl font-bold text-white mt-32 mb-8\">Welcome to our blog</h1>\r\n <p className=\"text-light text-sm text-white mb-6\">\r\n stay updated with the newest info and development Stories, <br/>\r\n case studies and insights share by NCF\r\n </p>\r\n\r\n <button className=\"text-white text-sm font-bold py-2 px-8 rounded\">Learn More</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </SwiperSlide>\r\n </SliderContainer>\r\n )\r\n}\r\n\r\nexport default Slider\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"tag\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'p'\n};\n\nvar CardText = function CardText(props) {\n var className = props.className,\n cssModule = props.cssModule,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n var classes = mapToCssModules(classNames(className, 'card-text'), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nCardText.propTypes = propTypes;\nCardText.defaultProps = defaultProps;\nexport default CardText;","import React, { useState, useEffect } from 'react';\r\nimport {SERVER_URL, CLIENT_URL} from '../../../config/server';\r\nimport {\r\n Container, Row, Col\r\n } from 'reactstrap';\r\nimport '../blog.css';\r\nimport _ from 'lodash';\r\nimport { Input } from 'antd';\r\nconst { Search } = Input;\r\n\r\nfunction TagSidebar() {\r\n const onSearch = (value) => {\r\n console.log(value)\r\n window.location.href = `${CLIENT_URL}blog/search?q=${value}`;\r\n };\r\n\r\n\r\n const [recentposts, setrecentPosts] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n const fetchPosts =() =>{\r\n fetch(`${SERVER_URL}/blog/all`)\r\n .then(res => res.json())\r\n .then(json => {\r\n console.log(json.message, 'json')\r\n if(json.status === 200){\r\n setrecentPosts(json.data.data);\r\n }else{\r\n console.log(\"Oops couldn't fetch data\");\r\n }\r\n });\r\n \r\n }\r\n \r\n fetchPosts();\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n const fetchPosts =() =>{\r\n fetch(`${SERVER_URL}/blog/category`)\r\n .then(res => res.json())\r\n .then(json => {\r\n console.log(json.message, 'json')\r\n if(json.status === 200){\r\n setCategories(json.data);\r\n }else{\r\n console.log(\"Oops couldn't fetch data\");\r\n }\r\n });\r\n \r\n }\r\n \r\n fetchPosts();\r\n }, []);\r\n\r\n const indexofLastpost = 1 * 3;\r\n const indexofFirstpost = indexofLastpost - 3;\r\n const currentposts = recentposts.slice(indexofFirstpost,indexofLastpost)\r\n\r\n return (\r\n <nav>\r\n <div className=\"\">\r\n <div className=\"p-3 mb-3 shadow-md rounded\">\r\n <span className=\"pr-1 text-md text-black font-bold flex-1\">Search</span>\r\n <div className=\"pl-4 py-5\">\r\n <Search placeholder=\"Type Here\" className=\"rounded\" size=\"large\" onSearch={onSearch}/>\r\n </div>\r\n </div>\r\n \r\n <div className=\"p-3 mb-3 shadow-md rounded\">\r\n <span className=\"pr-1 text-md text-black font-bold flex-1\">Categories</span>\r\n <div className=\"pl-4\">\r\n {\r\n categories.map((category) =>(\r\n <a className=\"block text-sm font-medium my-3 text-black px-4 py-2\" href={`/blog/tag?id=${category.id}`}>{category.name}</a>\r\n ))\r\n }\r\n </div>\r\n </div>\r\n \r\n <div className=\"pl-4 pt-3 shadow-md rounded\">\r\n <span className=\"pr-1 text-md text-black font-bold flex-1\">Recent Post</span>\r\n {currentposts.map((post) => (\r\n <Row xs=\"2\" className=\"w-full shadow-sm mt-3\">\r\n <Col className=\"w-full blogSidebarcardImg\" md=\"3\"><img src={`https://admin.ncfnigeria.org/images/blog/${post.image}`} alt=\"Card image cap\" /></Col>\r\n <Col md=\"9\" className=\" py-3\">\r\n <h4 className=\"text-xs\">{post.title}</h4>\r\n <a href={`blog/post?id=${post.id}`}>\r\n <h4 className=\"text-sm text-bold\">Learn More</h4>\r\n </a>\r\n \r\n </Col>\r\n </Row>\r\n ))}\r\n </div>\r\n </div>\r\n </nav>\r\n )\r\n}\r\n\r\nexport default TagSidebar\r\n","import React, { useState, useEffect } from 'react';\r\nimport HomeSlider from './components/slider/Slider';\r\nimport Tagbar from './components/tagbar/tagbar';\r\nimport _ from 'lodash';\r\nimport TagSidebar from './components/TagSidebar';\r\nimport \"../style.css\";\r\nimport \"./blog.css\";\r\nimport {\r\n Card, CardImg, CardText, CardBody,\r\n CardTitle,\r\n } from 'reactstrap';\r\n import {SERVER_URL} from '../../config/server';\r\n\r\n\r\nfunction Blog() {\r\n\r\n const queryString = window.location.search;\r\n const urlParams = new URLSearchParams(queryString);\r\n const postId = urlParams.get('id')\r\n const [post, setPost] = useState({\r\n image: '',\r\n title: '',\r\n description: '',\r\n created_at: '',\r\n cat:{\r\n name: ''\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n const fetchPosts =() =>{\r\n fetch(`${SERVER_URL}/blog/single/${postId}`)\r\n .then(res => res.json())\r\n .then(json => {\r\n console.log(json.message, 'json')\r\n if(json.message === 'operation successful'){\r\n setPost(json.status);\r\n console.log(post)\r\n }else{\r\n console.log(\"Oops couldn't fetch data\");\r\n }\r\n });\r\n \r\n }\r\n \r\n fetchPosts();\r\n }, []);\r\n\r\n \r\n\r\n// console.log(post.cat.name)\r\n\r\nfunction removeL(strl){\r\n const str = strl;\r\nconst realStr = str.replace(/(<([^>]+)>)/ig, '');\r\nvar newStr = realStr.replace(/ /g, '');\r\nreturn(newStr)\r\n}\r\n\r\n return (\r\n <div>\r\n <HomeSlider />\r\n <Tagbar/>\r\n <div className='w-full md:px-16'>\r\n <div className='grid md:grid-cols-12 md:gap-x-0 gap-y-2 z-index-3'>\r\n <div className='md:col-span-8 col-span-12 p-4'>\r\n <div className='grid md:grid-cols-1 gap-y-8'>\r\n <div className=\"rounded overflow-hidden h-full shadow-md h-full\">\r\n <div className=\"rounded overflow-hidden h-full shadow-md h-full\">\r\n <Card>\r\n <CardImg top width=\"100%\" src={`https://admin.ncfnigeria.org/images/blog/${post.image}`} alt=\"Card image cap\" />\r\n <CardBody className=\"px-6 py-4\">\r\n <p className=' text-sm mt-4 mb-4'>\r\n <span className=\"font-bold uppercase\">{ post.cat.name }</span> \r\n <span className=\"text-gray-300 pl-5\">{ post.created_at }</span>\r\n </p> \r\n <CardTitle className='font-bold text-2xl mb-2'>\r\n { post.title }\r\n </CardTitle>\r\n <CardText className='text-gray-900 txt-justify text-md mb-2'>\r\n <div dangerouslySetInnerHTML={{__html:post.description}}></div>\r\n </CardText>\r\n {/* <div className=\"cardLinks pt-5\">\r\n <a href=\"#\" className=\"text-sm text-black\">Read More</a>\r\n <div className=\"cardIcons\">\r\n <img src=\"assets/images/icons/like.png\"/>\r\n <img src=\"assets/images/icons/comment.png\"/>\r\n <img src=\"assets/images/icons/share.png\"/>\r\n </div>\r\n </div> */}\r\n </CardBody>\r\n </Card>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <aside className='md:col-span-4 col-span-12 min-h-screen py-4 border-0 border-r border-solid border-gray-200'>\r\n <TagSidebar />\r\n </aside>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n );\r\n}\r\n\r\nexport default Blog;\r\n"],"sourceRoot":""}