|
1 | | -import React from 'react'; |
| 1 | +import React, { Component } from 'react'; |
| 2 | +import axios from 'axios'; |
2 | 3 | import { Link } from 'react-router-dom';
|
| 4 | +import { BarLoader } from 'react-spinners'; |
3 | 5 |
|
4 | 6 | import { createMarkup, toTop } from '../helper';
|
5 | 7 |
|
6 | | -export default({location: {state: {data}}}) => { |
7 | | - toTop(); |
8 | | - return ( |
9 | | - <div className="single-content"> |
10 | | - <Link to="/" className="button">হোম</Link> |
11 | | - <h1 className="title" dangerouslySetInnerHTML={createMarkup(data.title.rendered)} /> |
12 | | - <div className="post"> |
13 | | - <span dangerouslySetInnerHTML={createMarkup(data.content.rendered)}/> |
14 | | - <p>আমার এই লেখা পূর্বে <a rel="noopener noreferrer" target="_blank" href={`${data.link}`}>আমার ব্লগে</a> প্রকাশিত হয়েছে। চাইলে <a rel="noopener noreferrer" target="_blank" href="https://with.zonayed.me/bn">আমার ব্লগ</a> থেকে ঘুরে আসতে পারেন। ব্লগ থেকে <a rel="noopener noreferrer" target="_blank" href="https://with.zonayed.me/bn/%E0%A6%B8%E0%A6%BE%E0%A6%AC%E0%A6%B8%E0%A7%8D%E0%A6%95%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%87%E0%A6%AC-%E0%A6%95%E0%A6%B0%E0%A7%81%E0%A6%A8/">সাবস্ক্রাইব</a> করলে আমি নিজে থেকেই আমার নতুন লেখাগুলো আপনার ইমেইলে প্রতি শুক্রবার সকালে পাঠিয়ে দিবো। ভালো থাকবেন। হ্যাপী প্রোগ্রামিং!</p> |
| 8 | +export default class SingleContent extends Component { |
| 9 | + state = { |
| 10 | + data: '', |
| 11 | + shouldUpdate: true |
| 12 | + } |
| 13 | + |
| 14 | + componentWillMount() { |
| 15 | + const { props: { match: { params: { id } } } } = this; |
| 16 | + axios(`http://with.zonayed.me/wp-json/wp/v2/posts/${id}`).then(({data}) => this.setState({data, shouldUpdate: false})); |
| 17 | + toTop(); |
| 18 | + } |
| 19 | + |
| 20 | + shouldComponentUpdate() { |
| 21 | + const { state: { shouldUpdate }} = this; |
| 22 | + return shouldUpdate; |
| 23 | + } |
| 24 | + |
| 25 | + render() { |
| 26 | + const { state: { data } } = this; |
| 27 | + if(!data) return <div className="loading-bar"><BarLoader /></div> |
| 28 | + |
| 29 | + const { state: { data: { title, content, link } } } = this; |
| 30 | + return ( |
| 31 | + <div className="single-content"> |
| 32 | + <Link to="/" className="button">হোম</Link> |
| 33 | + <h1 className="title" dangerouslySetInnerHTML={createMarkup(title.rendered)} /> |
| 34 | + <div className="post"> |
| 35 | + <span dangerouslySetInnerHTML={createMarkup(content.rendered)}/> |
| 36 | + <p>আমার এই লেখা পূর্বে <a rel="noopener noreferrer" target="_blank" href={`${link}`}>আমার ব্লগে</a> প্রকাশিত হয়েছে। চাইলে <a rel="noopener noreferrer" target="_blank" href="https://with.zonayed.me/bn">আমার ব্লগ</a> থেকে ঘুরে আসতে পারেন। ব্লগ থেকে <a rel="noopener noreferrer" target="_blank" href="https://with.zonayed.me/bn/%E0%A6%B8%E0%A6%BE%E0%A6%AC%E0%A6%B8%E0%A7%8D%E0%A6%95%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%87%E0%A6%AC-%E0%A6%95%E0%A6%B0%E0%A7%81%E0%A6%A8/">সাবস্ক্রাইব</a> করলে আমি নিজে থেকেই আমার নতুন লেখাগুলো আপনার ইমেইলে প্রতি শুক্রবার সকালে পাঠিয়ে দিবো। ভালো থাকবেন। হ্যাপী প্রোগ্রামিং!</p> |
| 37 | + </div> |
15 | 38 | </div>
|
16 | | - </div> |
17 | | - ) |
| 39 | + ) |
| 40 | + } |
18 | 41 | }
|
0 commit comments