From 29fdff55a348dc32571fd745ba3846295a481f87 Mon Sep 17 00:00:00 2001 From: count0 Date: Fri, 17 Oct 2025 23:02:30 +0200 Subject: [PATCH] Fix duplicate habit creations when logged in DB --- src/pages/AddEditHabitPage.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pages/AddEditHabitPage.jsx b/src/pages/AddEditHabitPage.jsx index 64fe4af..8b6072a 100644 --- a/src/pages/AddEditHabitPage.jsx +++ b/src/pages/AddEditHabitPage.jsx @@ -1,3 +1,11 @@ +// UUID v4 generator (browser safe, duplicate of datastore.js for local use) +function generateUUID() { + if (window.crypto && window.crypto.randomUUID) return window.crypto.randomUUID(); + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} import React, { useState, useEffect } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { motion } from 'framer-motion'; @@ -73,7 +81,7 @@ const AddEditHabitPage = () => { // Add to localStorage for instant UI const habits = JSON.parse(localStorage.getItem('habitgrid_data') || '[]'); const newHabit = { - id: Date.now().toString(), + id: generateUUID(), name: name.trim(), color, category: category.trim(),