@@ -6,6 +6,7 @@ import * as azimuth from 'azimuth-js';
6import { useNetwork } from 'store/network';
6import { useNetwork } from 'store/network';
7import { usePointCursor } from 'store/pointCursor';
7import { usePointCursor } from 'store/pointCursor';
8import { usePointCache } from 'store/pointCache';
8import { usePointCache } from 'store/pointCache';
9+import { useStarReleaseCache } from 'store/starRelease';
10import * as need from 'lib/need';
11import * as need from 'lib/need';
11import { useLocalRouter } from 'lib/LocalRouter';
12import { useLocalRouter } from 'lib/LocalRouter';
@@ -14,6 +15,7 @@ import useEthereumTransaction from 'lib/useEthereumTransaction';
14import { GAS_LIMITS } from 'lib/constants';
15import { GAS_LIMITS } from 'lib/constants';
16import ViewHeader from 'components/ViewHeader';
17import ViewHeader from 'components/ViewHeader';
18+import NoticeBox from 'components/NoticeBox';
17import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
19import InlineEthereumTransaction from 'components/InlineEthereumTransaction';
18import { AddressInput } from 'form/Inputs';
20import { AddressInput } from 'form/Inputs';
19import { composeValidator, buildAddressValidator } from 'form/validators';
21import { composeValidator, buildAddressValidator } from 'form/validators';
@@ -41,6 +43,8 @@ function useTransfer() {
41export default function AdminTransfer() {
43export default function AdminTransfer() {
42 const { pop } = useLocalRouter();
44 const { pop } = useLocalRouter();
43 const name = useCurrentPointName();
45 const name = useCurrentPointName();
46+ const { pointCursor } = usePointCursor();
47+ const { starReleaseDetails } = useStarReleaseCache();
46 construct,
50 construct,
@@ -50,6 +54,15 @@ export default function AdminTransfer() {
51 } = useTransfer();
55 } = useTransfer();
57+ const needLockupWarning = useMemo(() => {
58+ const point = need.point(pointCursor);
59+ const az = azimuth.azimuth;
61+ az.getPointSize(point) === az.PointSize.Galaxy &&
62+ starReleaseDetails.map(a => a.kind).getOrElse('none') !== 'none'
64+ }, [pointCursor, starReleaseDetails]);
53 const validate = useMemo(
66 const validate = useMemo(
54 () => composeValidator({ address: buildAddressValidator() }),
67 () => composeValidator({ address: buildAddressValidator() }),
@@ -80,6 +93,12 @@ export default function AdminTransfer() {
80 Transfer {name} to a new owner.
93 Transfer {name} to a new owner.
81 </Grid.Item>
94 </Grid.Item>
96+ {!completed && needLockupWarning && (
97+ <Grid.Item full as={NoticeBox}>
98+ You have stars in lockup. These will not transfer with the{' '}
99+ galaxy. If you wish, you must transfer the lockup separately.
83 {completed && (
102 {completed && (
85 <Grid.Item full as={Text} className="wrap">
104 <Grid.Item full as={Text} className="wrap">