| 6 | "": "const event_id = props.event_id;\\\\nconst accountId = context.accountId;\\\\nconst CONTRACT = \\\\\\\"event_org.near\\\\\\\";\\\\n// let data = Social.getr(`${event_creator}/published_events/${event_id}`);\\\\nconst data = Near.view(CONTRACT, \\\\\\\"get_event\\\\\\\", { event_id: event_id });\\\\nconst participants = data.cur_participants;\\\\n\\\\nconst participantWidgets = participants.map((accountId) => {\\\\n return (\\\\n <>\\\\n <Widget src={`mob.near/widget/ProfileLine`} props={{ accountId }} />\\\\n </>\\\\n );\\\\n});\\\\n\\\\nconst EventImage = styled.img`\\\\n max-width: 400px;\\\\n max-height: 300px;\\\\n margin-bottom: 16px;\\\\n align-self: center;\\\\n`;\\\\n\\\\nconst Card = styled.div`\\\\ndisplay: flex;\\\\nflex-direction: column;\\\\nwidth: 400px;\\\\npadding: 20px;\\\\nborder: 1px solid gray;\\\\n`;\\\\n\\\\nconst Title = styled.div`\\\\ndisplay: flex;\\\\nalign-items: baseline;\\\\n`;\\\\n\\\\nconst TitleText = styled.h5`\\\\nflex: 1;\\\\n`;\\\\n\\\\nconst NumPersons = styled.div``;\\\\n\\\\nconst Organizer = styled.div`\\\\nfont-size: 14px;\\\\n`;\\\\n\\\\nconst Description = styled.div`\\\\nfont-size: 14px;\\\\ncolor: gray\\\\n`;\\\\n\\\\nconst Join = styled.div`\\\\nmargin-top: 16px;\\\\ndisplay: flex;\\\\nalign-items: center;\\\\nflex-direction: column;\\\\n`;\\\\n\\\\nconst JoinBy = styled.div`\\\\nfont-style: italic;\\\\ncolor: gray;\\\\nfont-size: 12px;\\\\n`;\\\\n\\\\nconst ParticipantCount = styled.div`\\\\nmargin-top: 8px;\\\\n`;\\\\n\\\\nfunction callJoin() {\\\\n Near.call({\\\\n contractName: CONTRACT,\\\\n methodName: \\\\\\\"join\\\\\\\",\\\\n args: {\\\\n account_id: accountId,\\\\n event_id: event_id,\\\\n },\\\\n deposit: data.price,\\\\n });\\\\n}\\\\n\\\\nfunction callClaim() {\\\\n Near.call({\\\\n contractName: CONTRACT,\\\\n methodName: \\\\\\\"claim\\\\\\\",\\\\n args: {\\\\n event_id: event_id,\\\\n },\\\\n });\\\\n}\\\\n\\\\nfunction button(data) {\\\\n let deadline = new Date(data.deadline / 1000000);\\\\n let today = new Date();\\\\n if (data.status == \\\\\\\"WAITING\\\\\\\") {\\\\n if (deadline > today) {\\\\n if (!data.cur_participants.includes(accountId)) {\\\\n return (\\\\n <Join>\\\\n <button onClick={callJoin}>\\\\n Join for{\\\\\\\" \\\\\\\"}\\\\n <b>{Math.round((data.price / 1e24) * 100) / 100} NEAR </b>\\\\n </button>{\\\\\\\" \\\\\\\"}\\\\n <JoinBy>\\\\n Join by{\\\\\\\" \\\\\\\"}\\\\n {new Date(data.deadline / 1000000).toISOString().substring(0, 10)}\\\\n </JoinBy>\\\\n </Join>\\\\n );\\\\n } else {\\\\n return (\\\\n <JoinBy>\\\\n <br />\\\\n Event deadline:{\\\\\\\" \\\\\\\"}\\\\n {new Date(data.deadline / 1000000).toISOString().substring(0, 10)}\\\\n </JoinBy>\\\\n );\\\\n }\\\\n } else {\\\\n return (\\\\n <Join>\\\\n <button onClick={callClaim}>End Event</button>{\\\\\\\" \\\\\\\"}\\\\n <JoinBy>\\\\n Event deadline\\\\n {new Date(data.deadline / 1000000)\\\\n .toISOString()\\\\n .substring(0, 10)}{\\\\\\\" \\\\\\\"}\\\\n passed\\\\n </JoinBy>\\\\n </Join>\\\\n );\\\\n }\\\\n } else {\\\\n return (\\\\n <JoinBy>\\\\n <br />\\\\n Event deadline\\\\n {new Date(data.deadline / 1000000).toISOString().substring(0, 10)}{\\\\\\\" \\\\\\\"}\\\\n passed\\\\n </JoinBy>\\\\n );\\\\n }\\\\n}\\\\n\\\\nreturn (\\\\n <Card>\\\\n {data.image_link && (\\\\n <EventImage src={`https://ipfs.near.social/ipfs/${data.image_link}`} />\\\\n )}\\\\n <Title>\\\\n <TitleText>{data.title || \\\\\\\"Untitled\\\\\\\"}</TitleText>\\\\n <NumPersons>\\\\n {data.min_num} - {data.max_num} people\\\\n </NumPersons>\\\\n </Title>\\\\n <Organizer>\\\\n Organized by\\\\n <Widget\\\\n src={`mob.near/widget/ProfileLine`}\\\\n props={{ accountId: data.owner }}\\\\n />\\\\n </Organizer>\\\\n {data.description && <Description>{data.description}</Description>}\\\\n <ParticipantCount>\\\\n {participants.length > 0\\\\n ? participants.length +\\\\n (participants.length > 1 ? \\\\\\\" participants:\\\\\\\" : \\\\\\\" participant:\\\\\\\")\\\\n : \\\\\\\"Join to be the first participant!\\\\\\\"}\\\\n </ParticipantCount>\\\\n {participantWidgets}\\\\n {button(data)}\\\\n </Card>\\\\n);\\\\n" |