import React, { FC, useState } from 'react';
import { StreamApp } from '../context';
import { NotificationProps } from './Notification';
export const WithExampleStreamApp: FC = ({ children }) => (
{children}
);
export const notificationGroup1: NotificationProps['activityGroup'] = {
activities: [
{
// @ts-expect-error
actor: { data: { name: 'Jacky Davidson', profileImage: 'https://randomuser.me/api/portraits/men/72.jpg' } },
verb: 'like',
object: {
verb: 'post',
attachments: {
files: [],
images: [
'https://stream-cloud-uploads.imgix.net/images/41814/a5db2d18-1803-4300-906f-579af270edf1.3356358479_a0e3ee8a05_b.jpg?s=65db066cf45ee7895529725a8d478c14',
],
},
object:
'https://stream-cloud-uploads.imgix.net/images/41814/a5db2d18-1803-4300-906f-579af270edf1.3356358479_a0e3ee8a05_b.jpg?s=65db066cf45ee7895529725a8d478c14',
actor: { data: { name: 'Josh' } },
},
time: '2021-04-13T07:40:37.975Z',
},
],
};
export const notificationGroup2: NotificationProps['activityGroup'] = {
activities: [
{
// @ts-expect-error
actor: { data: { name: 'Jordan Belfair', profileImage: 'https://randomuser.me/api/portraits/women/72.jpg' } },
verb: 'follow',
object: {},
time: '2021-04-11T07:40:37.975Z',
},
{
// @ts-expect-error
actor: { data: { name: 'Jacky Davidson', profileImage: 'https://randomuser.me/api/portraits/men/72.jpg' } },
verb: 'follow',
object: {},
},
{
// @ts-expect-error
actor: { data: { name: 'Jared Fault', profileImage: 'https://randomuser.me/api/portraits/women/7.jpg' } },
verb: 'follow',
object: {},
},
],
};
export const resolveAfter = (duration: number) => new Promise((resolve) => setTimeout(resolve, duration));
type StatefulComponentProps = {
children: (renderProps: { setState: React.Dispatch>; state: T }) => JSX.Element;
initialValue: T;
};
export const StatefulComponent = ({ children, initialValue }: StatefulComponentProps) => {
const [state, setState] = useState(initialValue);
return children({ state, setState });
};