);
diff --git a/app/components/building/actionButton.tsx b/app/components/building/actionButton.tsx
index 1c339299..11e7950f 100644
--- a/app/components/building/actionButton.tsx
+++ b/app/components/building/actionButton.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import classnames from 'classnames';
+import classNames from 'classnames';
type Props = {
actionName: string;
@@ -20,7 +20,7 @@ class ActionButton extends React.Component {
return (
= ({ building, endpoint, re
Time remaining: {util.formatTime(remaining)}
- You may subsidize the recycle job for {SUBSIDY_COST} and finish it
- immediately.
+ You may subsidize the recycle job for {SUBSIDY_COST}{' '}
+
+
+ {' '}
+ and finish it immediately.
setSolution(e.target.value)}
placeholder='Enter the code you see above'
value={solution}
- style={{
- // Magic number to make it the same width as the image.
- width: 140,
- }}
/>
- You can subsidize the build queue for {subsidyCost} to finish
- it immediately.
+ You can subsidize the build queue for {subsidyCost}{' '}
+
+
+ {' '}
+ to finish it immediately.
diff --git a/app/components/embassy/allianceTab.tsx b/app/components/embassy/allianceTab.tsx
index 97d7dcf9..79584409 100644
--- a/app/components/embassy/allianceTab.tsx
+++ b/app/components/embassy/allianceTab.tsx
@@ -1,12 +1,12 @@
import React from 'react';
import { AllianceStatus, Building } from 'app/interfaces';
-import * as util from 'app/util';
import * as vex from 'app/vex';
import {
useDissolveAllianceMutation,
useLeaveAllianceMutation,
useUpdateAllianceMutation,
} from 'app/queries/embassy';
+import TimeInWords from 'app/components/menu/timeInWords';
type Props = {
building: Building;
@@ -29,10 +29,6 @@ const AllianceTab: React.FunctionComponent = ({ building, alliance, isLea
const [reason, setReason] = React.useState('');
const [message, setMessage] = React.useState('');
- const founded = alliance.date_created
- ? util.formatMomentLong(util.serverDateToMoment(alliance.date_created))
- : 'Unknown';
-
const handleSave = () => {
update.mutate(
{ description, forum_uri: forumUri, announcements },
@@ -43,7 +39,8 @@ const AllianceTab: React.FunctionComponent = ({ building, alliance, isLea
return (
- Founded: {founded}
+ Founded:{' '}
+
{isLeader ? (
diff --git a/app/components/essentia/boost.tsx b/app/components/essentia/boost.tsx
index 48a95b60..b52a52b3 100644
--- a/app/components/essentia/boost.tsx
+++ b/app/components/essentia/boost.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import { observer } from 'mobx-react';
-import classnames from 'classnames';
+import classNames from 'classnames';
import * as util from 'app/util';
import Icon from 'app/components/menu/icon';
import { IconStyle } from 'app/interfaces/menu/icons';
@@ -32,7 +32,7 @@ const Boost: React.FunctionComponent = ({ type, iconStyle, description, m
{ms > 0 ? (
3 * day, // More than three days
'is-warning': 3 * day > ms && ms > day, // Less than three days and more than one day
'is-danger': day > ms, // Less than one day
@@ -45,7 +45,7 @@ const Boost: React.FunctionComponent = ({ type, iconStyle, description, m
)}
-
+ Invite your friends to the game and you get{' '}
+ free Essentia! For every university level
+ past 4 that they achieve, you'll get 5 Essentia. That's up to{' '}
+ 130 Essentia per friend!
-
OR
-
-
- Invite your friends to the game and you get free Essentia! For every
- university level past 4 that they achieve, you'll get 5 Essentia. That's up to{' '}
-
- 130 Essentia
- {' '}
- per friend!
-
Graft succeeds {data?.graft_odds ?? 0}% of the time and the spy survives{' '}
- {data?.survival_odds ?? 0}% of the time. Costs {cost} .
+ {data?.survival_odds ?? 0}% of the time. Costs {cost}{' '}
+
+
+
+ .
{!canAfford && (
diff --git a/app/components/inbox.tsx b/app/components/inbox.tsx
index d61326a3..972a99e5 100644
--- a/app/components/inbox.tsx
+++ b/app/components/inbox.tsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import classnames from 'classnames';
+import classNames from 'classnames';
import { ComposeDraft, InboxWindowOptions } from 'app/interfaces';
import CreateTab from 'app/components/inbox/createTab';
import ReaderTab from 'app/components/inbox/readerTab';
@@ -44,7 +44,7 @@ const InboxWindow: React.FunctionComponent = ({ options }) => {
))}
diff --git a/app/components/inbox/createTab.tsx b/app/components/inbox/createTab.tsx
index f337347e..94a71c36 100644
--- a/app/components/inbox/createTab.tsx
+++ b/app/components/inbox/createTab.tsx
@@ -11,8 +11,6 @@ type Props = {
// local state can just be initialized from props rather than synced with an effect.
//
const CreateTab: React.FunctionComponent = ({ draft }) => {
- // TODO: replace with the autocomplete recipient picker once it exists - see app/yui/textboxList.js.
- // For now this is a plain comma-separated text field, same as the server-side `recipients` param.
const [recipients, setRecipients] = useState(draft?.recipients ?? '');
const [subject, setSubject] = useState(draft?.subject ?? '');
const [body, setBody] = useState(draft?.body ?? '');
diff --git a/app/components/inbox/messageDetail.tsx b/app/components/inbox/messageDetail.tsx
index 0cf3df7f..17b95b23 100644
--- a/app/components/inbox/messageDetail.tsx
+++ b/app/components/inbox/messageDetail.tsx
@@ -5,13 +5,13 @@ import MessageBody from 'app/components/inbox/messageBody';
import AttachmentMap from 'app/components/inbox/attachmentMap';
import EmpireLink from 'app/components/empireLink';
import EmpireRPCStore from 'app/stores/rpc/empire';
-import * as util from 'app/util';
import * as vex from 'app/vex';
import {
useArchiveMessagesMutation,
useMessageQuery,
useTrashMessagesMutation,
} from 'app/queries/inbox';
+import TimeInWords from 'app/components/menu/timeInWords';
type Props = {
messageId: number | undefined;
@@ -123,7 +123,9 @@ const MessageDetail: React.FunctionComponent = ({
diff --git a/app/components/inbox/messageList.tsx b/app/components/inbox/messageList.tsx
index 327f0043..a1abcc46 100644
--- a/app/components/inbox/messageList.tsx
+++ b/app/components/inbox/messageList.tsx
@@ -1,10 +1,8 @@
import React from 'react';
-import classnames from 'classnames';
import { InboxFolder, InboxMessageSummary, MessageTag } from 'app/interfaces';
import Pagination from 'app/components/building/pagination';
import QueryState from 'app/components/queryState';
import environment from 'app/environment';
-import * as util from 'app/util';
import * as vex from 'app/vex';
import {
INBOX_ROWS_PER_PAGE,
@@ -12,6 +10,8 @@ import {
useInboxFolderQuery,
useTrashMessagesMutation,
} from 'app/queries/inbox';
+import TimeInWords from 'app/components/menu/timeInWords';
+import classNames from 'classnames';
//
// Value/label pairs for the Inbox tab's tag filter, matching the legacy