import { h, Component } from 'preact'; const algoliaId = document.querySelector("meta[name='algolia-public-id']").content const algoliaKey = document.querySelector("meta[name='algolia-public-key']").content const env = document.querySelector("meta[name='environment']").content const client = algoliasearch(algoliaId, algoliaKey); const index = client.initIndex('searchables_'+env); export default class ChannelDetails extends Component { constructor(props) { super(props); this.state = { searchedUsers: [], invitations: [] } } triggerUserSearch = e => { const component = this; const query = e.target.value; const filters = { hitsPerPage: 20, attributesToRetrieve: [ 'id', 'title', 'path' ], attributesToHighlight: [], filters: 'class_name:User', } if (query.length > 0) { index.search(query, filters) .then(function(content) { component.setState({searchedUsers:content.hits}) }); } else { component.setState({searchedUsers:[]}) } } triggerInvite = e => { const component = this; const id = e.target.dataset.content; e.target.style.display = 'none' fetch(`/chat_channel_memberships`, { method: 'POST', headers: { Accept: 'application/json', 'X-CSRF-Token': window.csrfToken, 'Content-Type': 'application/json', }, body: JSON.stringify({ chat_channel_membership: { user_id: id, chat_channel_id: component.props.channel.id, } }), credentials: 'same-origin', }) .then(response => response) .then(this.handleInvitationSuccess) .catch(null); } handleInvitationSuccess = response => { console.log(response) } render() { const channel = this.props.channel const users = Object.values(channel.channel_users).map((user) => { return
}); let subHeader = '' if (users.length === 80) { subHeader =