Browse Source

Terminate role proposal - slash stake only if available

Leszek Wiesner 4 years ago
parent
commit
8f820d86ec

+ 14 - 11
pioneer/packages/joy-proposals/src/forms/TerminateWorkingGroupLeaderForm.tsx

@@ -26,6 +26,7 @@ import { Bytes } from '@polkadot/types';
 import { WorkingGroup, InputValidationLengthConstraint } from '@joystream/types/common';
 import { bool as Bool } from '@polkadot/types/primitive';
 import { withCalls } from '@polkadot/react-api';
+import { formatBalance } from '@polkadot/util';
 
 export type FormValues = WGFormValues & {
   terminationRationale: string;
@@ -45,11 +46,11 @@ type FormContainerProps = ProposalFormContainerProps<ExportComponentProps> & {
 };
 type FormInnerProps = ProposalFormInnerProps<FormContainerProps, FormValues>;
 
-const valuesToTerminateRoleParams = (values: FormValues, leadId: number): TerminateRoleParameters => {
+const valuesToTerminateRoleParams = (values: FormValues, lead: WorkerData): TerminateRoleParameters => {
   return new TerminateRoleParameters({
-    worker_id: new WorkerId(leadId),
+    worker_id: new WorkerId(lead.workerId),
     rationale: new Bytes(values.terminationRationale),
-    slash: new Bool(values.slashStake),
+    slash: lead.stake ? new Bool(values.slashStake) : new Bool(false),
     working_group: new WorkingGroup(values.workingGroup)
   });
 };
@@ -71,7 +72,7 @@ const TerminateWorkingGroupLeaderForm: React.FunctionComponent<FormInnerProps> =
         values.title,
         values.rationale,
         '{STAKE}',
-        valuesToTerminateRoleParams(values, lead?.workerId!)
+        lead && valuesToTerminateRoleParams(values, lead)
       ]}
     >
       { lead && (<>
@@ -88,13 +89,15 @@ const TerminateWorkingGroupLeaderForm: React.FunctionComponent<FormInnerProps> =
           error={errorLabelsProps.terminationRationale}
           value={values.terminationRationale}
         />
-        <FormField>
-          <Checkbox
-            toggle
-            onChange={(e, data) => { setFieldValue('slashStake', data.checked); }}
-            label="Slash leader stake"
-            checked={values.slashStake}/>
-        </FormField>
+        { lead.stake && (
+          <FormField>
+            <Checkbox
+              toggle
+              onChange={(e, data) => { setFieldValue('slashStake', data.checked); }}
+              label={ `Slash leader stake (${formatBalance(lead.stake)})` }
+              checked={values.slashStake}/>
+          </FormField>
+        ) }
       </>) }
     </GenericWorkingGroupProposalForm>
   );