diff --git a/src/Handler/Utils/Profile.hs b/src/Handler/Utils/Profile.hs index 32e14ee5a..6c0037b6e 100644 --- a/src/Handler/Utils/Profile.hs +++ b/src/Handler/Utils/Profile.hs @@ -22,16 +22,17 @@ validDisplayName (fmap Text.strip -> mTitle) (Text.strip -> fName) (Text.strip - , dNameLetters `Set.isSubsetOf` Set.unions [titleLetters, fNameLetters, sNameLetters, addLetters] ] where - titleFrags = MultiSet.fromList $ maybe [] Text.words mTitle - fNameFrags = MultiSet.fromList $ Text.words fName - sNameFrags = MultiSet.fromList $ Text.words sName - dNameFrags = MultiSet.fromList $ stripAdd <$> Text.words dName + titleFrags = foldMap makeMultiSet mTitle + dNameFrags = makeMultiSet dName + fNameFrags = makeMultiSet fName + sNameFrags = makeMultiSet sName - titleLetters = Set.fromList $ maybe [] unpack mTitle - fNameLetters = Set.fromList $ unpack fName - sNameLetters = Set.fromList $ unpack sName - dNameLetters = Set.fromList $ unpack dName - addLetters = Set.fromList [' ', ',', '.'] + titleLetters = foldMap (Set.fromList . unpack) mTitle + fNameLetters = Set.fromList $ unpack fName + sNameLetters = Set.fromList $ unpack sName + dNameLetters = Set.fromList $ unpack dName + addLetters = Set.fromList [' ', ',', '.', '-'] isAdd = (`Set.member` addLetters) - stripAdd = Text.dropWhileEnd isAdd -- ? Text.dropAround isAdd \ No newline at end of file + splitAdd = Text.split isAdd + makeMultiSet = MultiSet.fromList . filter (not . Text.null) . splitAdd