import {Component, useState} from 'react';
import {action} from '@storybook/addon-actions';
import Note from 'sentry/components/activity/note';
import SentryTypes from 'sentry/sentryTypes';
import ConfigStore from 'sentry/stores/configStore';
import MemberListStore from 'sentry/stores/memberListStore';
import ProjectsStore from 'sentry/stores/projectsStore';
const user = {
username: 'billy@sentry.io',
identities: [],
id: '1',
name: 'billy',
dateJoined: '2019-03-09T06:52:42.836Z',
avatar: {avatarUuid: null, avatarType: 'letter_avatar'},
email: 'billy@sentry.io',
};
const activity = {id: '123', data: {text: 'hello'}, dateCreated: new Date()};
ConfigStore.set('user', {...user, isSuperuser: true, options: {}});
ProjectsStore.loadInitialData([
{
id: '2',
slug: 'project-slug',
name: 'Project Name',
hasAccess: true,
isMember: true,
isBookmarked: false,
teams: [
{
id: '1',
slug: 'team-slug',
name: 'Team Name',
isMember: true,
memberCount: 0,
},
],
},
]);
MemberListStore.loadInitialData([
{
username: 'doug@sentry.io',
id: '2',
name: 'doug',
dateJoined: '2019-03-09T06:52:42.836Z',
avatar: {avatarUuid: null, avatarType: 'letter_avatar'},
email: 'doug@sentry.io',
},
]);
const organization = {
id: '1',
slug: 'org-slug',
access: ['project:releases'],
};
class OrganizationContext extends Component {
static childContextTypes = {
organization: SentryTypes.Organization,
};
getChildContext() {
return {organization};
}
render() {
return this.props.children;
}
}
export default {
title: 'Views/Activity/Activity Note',
component: Note,
};
export const Default = () => {
const [text, setText] = useState(activity.data.text);
return (
{
action('Updated item', props);
setText(props[0].text);
}}
onDelete={action('Deleted item')}
/>
);
};
Default.storyName = 'Note';
Default.parameters = {
docs: {
description: {
story:
'A `` is an `` that can be edited with an editor. The editor has an input mode and a preview mode.',
},
},
};