Skip to content

Instantly share code, notes, and snippets.

@ryardley
Last active March 23, 2020 17:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryardley/ba4c31250b89fc731210d3a31d4d14fc to your computer and use it in GitHub Desktop.
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

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