Skip to content

Instantly share code, notes, and snippets.

@ryardley
Last active March 23, 2020 17:04
Show Gist options
  • Select an option

  • Save ryardley/ba4c31250b89fc731210d3a31d4d14fc to your computer and use it in GitHub Desktop.

Select an option

Save ryardley/ba4c31250b89fc731210d3a31d4d14fc to your computer and use it in GitHub Desktop.
import React from 'react';
import useFriendStatus from './useFriendStatus';
export default function FriendListItem(props) {
const isOnline = useFriendStatus(props.friend.id);
return (
<li style={{ color: isOnline ? 'green' : 'black' }}>
{props.friend.name}
</li>
);
}
import { useState, useEffect } from 'react';
export function useFriendStatus(friendID) {
const [isOnline, setIsOnline] = useState(null);
function handleStatusChange(status) {
setIsOnline(status.isOnline);
}
useEffect(() => {
ChatAPI.subscribeToFriendStatus(friendID, handleStatusChange);
return () => {
ChatAPI.unsubscribeFromFriendStatus(friendID, handleStatusChange);
};
}, [handleStatusChange, ChatAPI]);
return isOnline;
}
@njbraun
Copy link
Copy Markdown

njbraun commented Nov 5, 2018

Export function useFriendStatus?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment