From cb37c2632cf945c1993d8b338abb1ce35899d5de Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Thu, 20 Nov 2025 18:15:16 -0500 Subject: feat: implement t-PpYZt2 --- Omni/Task/Core.hs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'Omni/Task') diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs index 798f8fe..31c0981 100644 --- a/Omni/Task/Core.hs +++ b/Omni/Task/Core.hs @@ -117,7 +117,7 @@ generateChildId parentId = do tasks <- loadTasks let children = filter (\t -> taskParent t == Just parentId) tasks -- Find the max suffix - suffixes = mapMaybe (\t -> getSuffix parentId (taskId t)) children + suffixes = mapMaybe (getSuffix parentId <. taskId) children nextSuffix = case suffixes of [] -> 1 s -> maximum s + 1 @@ -127,10 +127,10 @@ getSuffix :: Text -> Text -> Maybe Int getSuffix parent childId = if parent `T.isPrefixOf` childId && T.length childId > T.length parent then - let rest = T.drop (T.length parent) childId + let rest = T.drop (T.length parent) childId in if T.head rest == '.' - then readMaybe (T.unpack (T.tail rest)) - else Nothing + then readMaybe (T.unpack (T.tail rest)) + else Nothing else Nothing -- Convert number to base62 (0-9, a-z, A-Z) @@ -214,9 +214,7 @@ saveTask task = do -- Create a new task createTask :: Text -> TaskType -> Maybe Text -> Maybe Text -> Priority -> [Dependency] -> IO Task createTask title taskType parent namespace priority deps = do - tid <- case parent of - Nothing -> generateId - Just pid -> generateChildId pid + tid <- maybe generateId generateChildId parent now <- getCurrentTime let task = Task -- cgit v1.2.3