From a8c550c5512cf1791002638e43d1220c9e7cd279 Mon Sep 17 00:00:00 2001
From: thepaperpilot <thepaperpilot@gmail.com>
Date: Wed, 26 Apr 2023 20:28:01 -0500
Subject: [PATCH] Re-order some things

---
 src/features/achievements/achievement.tsx | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/features/achievements/achievement.tsx b/src/features/achievements/achievement.tsx
index 2d00c49..7a38331 100644
--- a/src/features/achievements/achievement.tsx
+++ b/src/features/achievements/achievement.tsx
@@ -182,6 +182,13 @@ export function createAchievement<T extends AchievementOptions>(
             decorator.preConstruct?.(achievement);
         }
         Object.assign(achievement, decoratedData);
+        for (const decorator of decorators) {
+            decorator.postConstruct?.(achievement);
+        }
+        const decoratedProps = decorators.reduce(
+            (current, next) => Object.assign(current, next.getGatheredProps?.(achievement)),
+            {}
+        );
 
         function complete() {
             earned.value = true;
@@ -209,12 +216,7 @@ export function createAchievement<T extends AchievementOptions>(
             }
         }
 
-        const decoratedProps = decorators.reduce(
-            (current, next) => Object.assign(current, next.getGatheredProps?.(achievement)),
-            {}
-        );
-
-        function gatherProps(this: Achievement<T>): Record<string, unknown> {
+        function gatherProps(this: GenericAchievement): Record<string, unknown> {
             const {
                 visibility,
                 display,
@@ -242,10 +244,6 @@ export function createAchievement<T extends AchievementOptions>(
             };
         }
 
-        for (const decorator of decorators) {
-            decorator.postConstruct?.(achievement);
-        }
-
         if (achievement.requirements != null) {
             const requirements = [
                 createVisibilityRequirement(achievement),