Skip to content

Commit

Permalink
fix: light refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
JayceDugan committed May 18, 2023
1 parent 0740069 commit dbfe6e8
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 29 deletions.
1 change: 0 additions & 1 deletion .idea/aws.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion src/components/inputs/CurrencyInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ export default function CurrencyInput(props: CurrencyInputProps) {
</div>
<input
type='number'
min='0'
step='.01'
name='price'
id='price'
Expand Down
50 changes: 23 additions & 27 deletions src/utils/calculateDividendReturns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,33 +35,28 @@ type CalculateAnnualDividend = (
const calculatedDividendYieldPercentage = (
currentYear: number,
payload: CalculateTotalDividendReturnsPayload
) => {
return Number(
payload.initialAnnualDividendYield +
payload.annualDividendAppreciation * currentYear
).toFixed(2);
};
) =>
Number(payload.initialAnnualDividendYield) +
Number(payload.annualDividendAppreciation * currentYear);
const calculateAnnualDividend: CalculateAnnualDividend = (
payload,
currentYear
) => {
return Number(
Number(calculatedDividendYieldPercentage(currentYear, payload)) *
Number(payload.sharePrice)
);
};
) =>
calculatedDividendYieldPercentage(currentYear, payload) *
Number(payload.sharePrice);

type CalculateTotalDividendReturns = (
payload: CalculateTotalDividendReturnsPayload,
currentYear?: number,
currentYear: number,
totalDividendReturns?: CalculateTotalDividendReturnsResult[]
) => CalculateTotalDividendReturnsResult[];
export const calculateTotalDividendReturns: CalculateTotalDividendReturns = (
payload,
currentYear = 1,
totalDividendReturns = []
) => {
const calculationsComplete = currentYear > payload.investmentPeriod;
const calculationsComplete =
Number(currentYear) > Number(payload.investmentPeriod);

if (calculationsComplete) {
return totalDividendReturns;
Expand All @@ -72,25 +67,26 @@ export const calculateTotalDividendReturns: CalculateTotalDividendReturns = (
currentYear,
payload
);

const principal =
Number(payload.startingPrincipal) +
payload.annualContribution * (currentYear - 1);
const yieldOnCost = Number((annualDividend / principal) * 100).toFixed(2);
Number(payload.annualContribution) * (Number(currentYear) - 1);
const yieldOnCost = (Number(annualDividend) / Number(principal)) * 100;
const afterDripValue = payload.dividendReinvestmentPlanEnabled
? Number(principal + annualDividend).toFixed(2)
: Number(principal).toFixed(2);
const principalIncrease = Number(
Number(afterDripValue) - Number(payload.startingPrincipal)
).toFixed(2);
const newBalance = Number(
Number(afterDripValue) + Number(payload.annualContribution) * currentYear
).toFixed(2);
? Number(principal) + Number(annualDividend)
: Number(principal);
const principalIncrease =
Number(afterDripValue) - Number(payload.startingPrincipal);
const newBalance =
Number(afterDripValue) +
Number(payload.annualContribution) * Number(currentYear);

const cumulativeDividends = totalDividendReturns.reduce(
(acc, item) => acc + item.annualDividend,
annualDividend
(acc, item) => Number(acc) + Number(item.annualDividend),
Number(annualDividend)
);

return calculateTotalDividendReturns(payload, currentYear + 1, [
return calculateTotalDividendReturns(payload, Number(currentYear) + 1, [
...totalDividendReturns,
{
year: currentYear,
Expand Down

0 comments on commit dbfe6e8

Please sign in to comment.