Frontent dev env (#247)

* Added frontend development files/environment

* More items-categories related removals

* Improvements in pages templates (inc. static pages)

* Improvements in video player

* Added empty home page message + cta

* Updates in media, playlist and management pages

* Improvements in material icons font loading

* Replaced media & playlists links in frontend dev-env

* frontend package version update

* chnaged frontend dev url port

* static files update

* Changed default position of theme switcher

* enabled frontend docker container
This commit is contained in:
Yiannis Stergiou
2021-07-11 18:01:34 +03:00
committed by GitHub
parent 060bb45725
commit aa6520daac
555 changed files with 201927 additions and 66002 deletions

View File

@@ -0,0 +1,57 @@
import React, { useState, useEffect } from 'react';
import initItemsList from '../../components/item-list/includes/itemLists/initItemsList';
import '../../components/item-list/ItemList.scss'; // TODO: Remove it from here
export function useItemList(props, itemsListRef) {
let previousItemsLength = 0;
let itemsListInstance = null;
const [items, setItems] = useState([]);
const [countedItems, setCountedItems] = useState(false);
const [listHandler, setListHandler] = useState(null);
function onItemsLoad(itemsArray) {
setItems([...itemsArray]);
}
function onItemsCount(totalItems) {
setCountedItems(true);
if (void 0 !== props.itemsCountCallback) {
props.itemsCountCallback(totalItems);
}
}
function addListItems() {
if (previousItemsLength < items.length) {
if (null === itemsListInstance) {
itemsListInstance = initItemsList([itemsListRef.current])[0];
}
// TODO: Should get item elements from children components.
const itemsElem = itemsListRef.current.querySelectorAll('.item');
if (!itemsElem || !itemsElem.length) {
return;
}
let i = previousItemsLength;
while (i < items.length) {
itemsListInstance.appendItems(itemsElem[i]);
i += 1;
}
previousItemsLength = items.length;
}
}
useEffect(() => {
if (void 0 !== props.itemsLoadCallback) {
props.itemsLoadCallback();
}
}, [items]);
return [items, countedItems, listHandler, setListHandler, onItemsLoad, onItemsCount, addListItems];
}