summaryrefslogtreecommitdiff
path: root/Omni/Task
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2025-11-20 18:15:16 -0500
committerBen Sima <ben@bsima.me>2025-11-20 18:15:16 -0500
commitcb37c2632cf945c1993d8b338abb1ce35899d5de (patch)
treeb0988c31ebce10e276b7dfd4840ce53fdb140985 /Omni/Task
parent028bbda4282515b95a7555209d397aaf22d32244 (diff)
feat: implement t-PpYZt2
Diffstat (limited to 'Omni/Task')
-rw-r--r--Omni/Task/Core.hs12
1 files changed, 5 insertions, 7 deletions
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