Skip to content

Conversation

v-lerie
Copy link
Collaborator

@v-lerie v-lerie commented Jun 23, 2025

Description

Fixes #2589

Changes

  • Updated the logic for loading the user profile page to prevent errors when a user profile does not exist yet.
  • This fix is paired with the backend fix in policyengine-api PR #2598, which adds logic to automatically create a user profile during a GET /user-profile call if none exists.

Copy link

vercel bot commented Jun 23, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
policyengine-app ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 23, 2025 5:22am

Copy link
Collaborator

@anth-volk anth-volk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple questions for you @v-lerie. Thanks for this!

} else {
dispUserSince = dateFormatter.format(accessedUserProfile.user_since);
dispUserSince = dateFormatter.format(
new Date(parseInt(accessedUserProfile.user_since) * 1000),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question, blocking: Why multiply by 1000?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without multiplying by 1000, the date kept showing up as January 1st, 1970. This happened because accessedUserProfile.user_since is a Unix timestamp in seconds, but JavaScript’s Date expects timestamps in milliseconds. So we multiply by 1000 to format the date correctly.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question, blocking: But when using this code with working profiles, I'm able to properly display the date without multiplying by 1000

When we actually write the record to the table, I believe we use JS Date, not something native to the database, for this exact purpose.


const POLICYENGINE_API = "https://api.policyengine.org";
const POLICYENGINE_API =
process.env.REACT_APP_API_URL || "https://api.policyengine.org";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Why add this environment variable?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added REACT_APP_API_URL for local development and testing. I wasn’t able to get the frontend and backend to connect properly without it. It defaults to the live API if not set, so production behavior isn’t affected. I left it in since it might be helpful for others running things locally, but I can remove it if it’s not needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

The profile page seems to break periodically
2 participants