import React from "react"; import SideBar, {SideBarTitle} from "../../elements/SideBar/SideBar"; import Tag from "../../elements/Tag/Tag"; import videocontainerstyle from "../../elements/VideoContainer/VideoContainer.module.css" import {TagPreview} from "../../elements/Preview/Preview"; import NewTagPopup from "../../elements/NewTagPopup/NewTagPopup"; import PageTitle from "../../elements/PageTitle/PageTitle"; import VideoContainer from "../../elements/VideoContainer/VideoContainer"; class CategoryPage extends React.Component { constructor(props, context) { super(props, context); this.state = { loadedtags: [], selected: null }; } componentDidMount() { // check if predefined category is set if (this.props.category) { this.fetchVideoData(this.props.category); } else { this.loadTags(); } } render() { return ( <> Default Tags: { this.loadTag(e.props.category) } }}>All { this.loadTag(e.props.category) } }}>FullHd { this.loadTag(e.props.category) } }}>LowQuality { this.loadTag(e.props.category) } }}>HD
{this.state.selected ? <> {this.videodata ? : null} :
{this.state.loadedtags ? this.state.loadedtags.map((m) => ( )) : "loading"}
} {this.state.popupvisible ? { this.setState({popupvisible: false}); this.loadTags(); }}/> : null } ); } loadTag = (tagname) => { this.fetchVideoData(tagname); }; fetchVideoData(tag) { console.log(tag); const updateRequest = new FormData(); updateRequest.append('action', 'getMovies'); updateRequest.append('tag', tag); console.log("fetching data"); // fetch all videos available fetch('/api/videoload.php', {method: 'POST', body: updateRequest}) .then((response) => response.json() .then((result) => { this.videodata = result; this.setState({selected: null}); // needed to trigger the state reload correctly this.setState({selected: tag}); })) .catch(() => { console.log("no connection to backend"); }); } loadCategoryPageDefault = () => { this.setState({selected: null}); this.loadTags(); }; /** * load all available tags from db. */ loadTags() { const updateRequest = new FormData(); updateRequest.append('action', 'getAllTags'); // fetch all videos available fetch('/api/Tags.php', {method: 'POST', body: updateRequest}) .then((response) => response.json() .then((result) => { this.setState({loadedtags: result}); })) .catch(() => { console.log("no connection to backend"); }); } } export default CategoryPage;