render() { const { cubejsToken, apiUrl } = this.state; const { location, history } = this.props; const params = new URLSearchParams(location.search); const query = (params.get('query') && JSON.parse(params.get('query'))) || {}; return ( (this.cubejsApi() && ( <PlaygroundQueryBuilder query={query} setQuery={(q) => history.push(`/build?query=${JSON.stringify(q)}`)} cubejsApi={this.cubejsApi()} apiUrl={apiUrl} cubejsToken={cubejsToken} dashboardSource={this.dashboardSource} /> )) || null ); }
window.addEventListener('WebComponentsReady', () => { let url = new URL(window.location) let room = url.searchParams.get('room') let force = url.searchParams.get('force') if (window.location.search && getChromeVersion(force) && room) { require('./components') container.innerHTML = `${help}<roll-call call="${room}"></roll-call>` dragDrop('body', files => { document.querySelector('roll-call').serveFiles(files) }) } else { container.innerHTML = welcome if (!getChromeVersion(force)) { document.querySelector('span.start-text').innerHTML = onlyChrome } each(document.querySelectorAll('welcome-message span'), elem => { elem.onclick = () => { let room if (elem.id === 'start-party') room = 'party' else room = random() window.location = window.location.pathname + '?room=' + room } }) } })
loadPage() { // get page of items from api const params = new URLSearchParams(location.search); const page = parseInt(params.get('page')) || 1; if (page !== this.state.pager.currentPage) { fetch(`/api/items?page=${page}`, { method: 'GET' }) .then(response => response.json()) .then(({pager, pageOfItems}) => { this.setState({ pager, pageOfItems }); }); } }