From c1995cf836b39ee68056baa97ca374f347e6f84a Mon Sep 17 00:00:00 2001 From: Prabhanjan Date: Sat, 15 Jun 2024 11:09:29 +0530 Subject: [PATCH 1/9] Create FUNDING.yml --- .github/FUNDING.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..19eed5c --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,14 @@ +# These are supported funding model platforms + +github: [sparkenstein, fosslife] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +polar: # Replace with a single Polar username +buy_me_a_coffee: # Replace with a single Buy Me a Coffee username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 675346d0a0ed8532ea875710a0f7be8ba5d2e925 Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 12:44:06 +0530 Subject: [PATCH 2/9] feat: narrowed down fs scope and move to appdata dir --- src-tauri/tauri.conf.json | 2 +- src/App.tsx | 6 +++--- src/components/Modals/ChangePasswordModal.tsx | 2 +- src/components/Modals/ExportModal.tsx | 2 +- src/main.tsx | 11 +++++++---- src/utils/kdbx.ts | 4 ++-- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2f5b06d..0b22739 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -30,7 +30,7 @@ }, "fs": { "all": true, - "scope": ["**"] + "scope": ["$APPDATA", "$APPDATA/vault.kdbx", "$APPLOG"] }, "window": { "all": false, diff --git a/src/App.tsx b/src/App.tsx index 4445e08..3171daa 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -49,7 +49,7 @@ function App() { const b64 = _arrayBufferToBase64(contents); await writeTextFile("vault.kdbx", b64, { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); loadDb(db); @@ -64,7 +64,7 @@ function App() { ); const b64 = await readTextFile("vault.kdbx", { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); const contents = _base64ToArrayBuffer(b64); @@ -88,7 +88,7 @@ function App() { useEffect(() => { (async () => { const fileExists = await exists("vault.kdbx", { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); setFirstTime(!fileExists); })(); diff --git a/src/components/Modals/ChangePasswordModal.tsx b/src/components/Modals/ChangePasswordModal.tsx index 0f3924c..b4811a0 100644 --- a/src/components/Modals/ChangePasswordModal.tsx +++ b/src/components/Modals/ChangePasswordModal.tsx @@ -34,7 +34,7 @@ export function ChangePasswordModal({ kdbxweb.ProtectedValue.fromString(currentPassword) ); const b64 = await readTextFile("vault.kdbx", { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); const contents = _base64ToArrayBuffer(b64); await kdbxweb.Kdbx.load(contents, creds); diff --git a/src/components/Modals/ExportModal.tsx b/src/components/Modals/ExportModal.tsx index 115b226..826c2b4 100644 --- a/src/components/Modals/ExportModal.tsx +++ b/src/components/Modals/ExportModal.tsx @@ -130,7 +130,7 @@ function ExportModalBase({ isOpen, onClose }: ExportModalProps) { if (path) { await copyFile("vault.kdbx", path, { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); notifications.show({ message: "Exported KDBX", diff --git a/src/main.tsx b/src/main.tsx index d4dd686..87e6a86 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -53,11 +53,14 @@ const theme = createTheme({ }); (async () => { - const appdir = await appDataDir(); + const appDatadir = await appDataDir(); + console.log("appDatadir", appDatadir); - const appDirExists = await exists(appdir); - if (!appDirExists) { - await createDir(appdir); + const addExists = await exists(appDatadir); + console.log("app dir exists?", addExists); + if (!addExists) { + await createDir(appDatadir); + console.log("App dir created"); } })(); diff --git a/src/utils/kdbx.ts b/src/utils/kdbx.ts index 1d9f2f9..319e461 100644 --- a/src/utils/kdbx.ts +++ b/src/utils/kdbx.ts @@ -44,13 +44,13 @@ export async function savedb(contents: ArrayBuffer | undefined) { } const b64 = _arrayBufferToBase64(contents); await writeTextFile("vault.kdbx", b64, { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); } export async function loaddb() { const b64 = await readTextFile("vault.kdbx", { - dir: BaseDirectory.App, + dir: BaseDirectory.AppData, }); return _base64ToArrayBuffer(b64); From 907cd63c940206e6dd9c7de0b40502a9a131f117 Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 16:51:59 +0530 Subject: [PATCH 3/9] chore: change style --- src/components/Modals/MainModal.tsx | 6 +----- src/pages/Home/components/Navbar.tsx | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/components/Modals/MainModal.tsx b/src/components/Modals/MainModal.tsx index fb2c6b9..e55745c 100644 --- a/src/components/Modals/MainModal.tsx +++ b/src/components/Modals/MainModal.tsx @@ -75,15 +75,11 @@ export function MainModalBase({ onClose, opened }: QrModalProps) { onClick={() => { onClose(); nav("/new", { replace: true }); - // openManual(); }} - variant="light" > Add Manually - + ); diff --git a/src/pages/Home/components/Navbar.tsx b/src/pages/Home/components/Navbar.tsx index bec7ec5..c26ccdb 100644 --- a/src/pages/Home/components/Navbar.tsx +++ b/src/pages/Home/components/Navbar.tsx @@ -111,7 +111,6 @@ export function Navbar({ handleSortType("usage count")} leftSection={ handleSortType("last used")} leftSection={ From 3fd31a55b790e71f4e9653b162f63dac5ccf009a Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 16:52:10 +0530 Subject: [PATCH 4/9] feat: more sort by options --- src/pages/Home/components/Card.tsx | 3 ++ src/pages/Home/components/Sidebar.tsx | 4 -- src/pages/Home/index.tsx | 64 ++++++++++++++++++--------- src/pages/New/indx.tsx | 10 ++++- 4 files changed, 54 insertions(+), 27 deletions(-) diff --git a/src/pages/Home/components/Card.tsx b/src/pages/Home/components/Card.tsx index 353e55e..552c245 100644 --- a/src/pages/Home/components/Card.tsx +++ b/src/pages/Home/components/Card.tsx @@ -115,6 +115,7 @@ export function Card({ e, isLatest }: CardProps) { {decodeURIComponent(e.label || "")} )} + last used time:{" "} { copy(); + e.entry?.fields.set("counter", (e.counter + 1).toString()); + e.entry?.times.update(); await clipboard.writeText(e.otp!); if (settings.minimizeOnCopy) { appWindow.minimize(); diff --git a/src/pages/Home/components/Sidebar.tsx b/src/pages/Home/components/Sidebar.tsx index fe2d0b6..373837c 100644 --- a/src/pages/Home/components/Sidebar.tsx +++ b/src/pages/Home/components/Sidebar.tsx @@ -156,10 +156,6 @@ export const Sidebar = ({ closeDrawer, drawerOpened }: Props) => { - {/* planned settings: - 1. Export - 2. Change master password - */} { + const unlisten = appWindow.onCloseRequested(async () => { + const content = await db?.save(); + savedb(content); + }); + + return () => { + unlisten.then((f) => f()); + }; + }, []); + + useEffect(() => { + db?.meta.customData.set("sortType", { value: sortType }); + db?.meta.customData.set("sortOrder", { value: sortOrder }); + }, [sortOrder, sortType]); + const handleSortType = (type: SortType, order?: SortOrder) => { setSortType(type); if (order) { @@ -121,29 +141,33 @@ export default function Home() { }, [entries, time < 2]); const sortedEntries = useMemo(() => { + if (sortOrder === "asc") { + return memoisedEntries.sort((a, b) => { + if (sortType === "label") { + return a.label.localeCompare(b.label); + } else if (sortType === "issuer") { + return a.issuer.localeCompare(b.issuer); + } else if (sortType === "usage count") { + return b.counter - a.counter; + } else if (sortType === "last used") { + return a.lastUsed && b.lastUsed + ? b.lastUsed.getTime() - a.lastUsed.getTime() + : 0; + } + return 0; + }); + } return memoisedEntries.sort((a, b) => { if (sortType === "label") { - return sortOrder === "asc" - ? a.label.localeCompare(b.label) - : b.label.localeCompare(a.label); + return b.label.localeCompare(a.label); } else if (sortType === "issuer") { - return sortOrder === "asc" - ? a.issuer.localeCompare(b.issuer) - : b.issuer.localeCompare(a.issuer); + return b.issuer.localeCompare(a.issuer); } else if (sortType === "usage count") { - return sortOrder === "asc" - ? a.counter - b.counter - : b.counter - a.counter; + return b.counter - a.counter; } else if (sortType === "last used") { - return sortOrder === "asc" - ? (a.lastUsed && - b.lastUsed && - a.lastUsed.getTime() - b.lastUsed.getTime()) || - 0 - : (b.lastUsed && - a.lastUsed && - b.lastUsed.getTime() - a.lastUsed.getTime()) || - 0; + return b.lastUsed && a.lastUsed + ? b.lastUsed.getTime() - a.lastUsed.getTime() + : 0; } return 0; }); @@ -180,6 +204,7 @@ export default function Home() { backdropFilter: "brightness(0.3)", display: latest ? "block" : "none", }} + onClick={() => setLatest(null)} > @@ -210,6 +235,3 @@ export default function Home() { ); } - -// TODO: lock user after 3 failed attempts -// TODO: add logging for every step, exlude secrets diff --git a/src/pages/New/indx.tsx b/src/pages/New/indx.tsx index c686bff..0dfb9ae 100644 --- a/src/pages/New/indx.tsx +++ b/src/pages/New/indx.tsx @@ -77,7 +77,6 @@ function EntryDetails() { if (params.id !== undefined) { const e = group?.entries.find((e) => e.fields.get("id") === params.id); if (e) { - e.times.update(); setLabel(e.fields.get("label")!?.toString()); setSecret(e.fields.get("secret")!?.toString()); setIssuer(e.fields.get("issuer")!?.toString()); @@ -126,6 +125,7 @@ function EntryDetails() { recordEntity(newEntry, entry!); entry?.fields.set("islatest", "true"); + entry?.times.update(); const save = await db?.save(); await savedb(save); @@ -254,7 +254,13 @@ function EntryDetails() { )} - + From d708f2c86574a17b57a7b42ed5519132a0e125ed Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 16:52:32 +0530 Subject: [PATCH 5/9] feat: close event listener --- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index be0d1b1..944c5bf 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" tauri-build = { version = "1", features = [] } [dependencies] -tauri = { version = "1", features = [ "dialog-message", "dialog-save", "window-minimize", "dialog-open", "dialog-confirm", "clipboard-write-text", "fs-all", "path-all", "shell-open"] } +tauri = { version = "1", features = [ "window-close", "dialog-message", "dialog-save", "window-minimize", "dialog-open", "dialog-confirm", "clipboard-write-text", "fs-all", "path-all", "shell-open"] } serde = { version = "1", features = ["derive"] } serde_json = "1" rust-argon2 = "2.1.0" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0b22739..bce14b8 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -35,7 +35,7 @@ "window": { "all": false, "center": false, - "close": false, + "close": true, "create": false, "hide": false, "maximize": false, From daaeaf5047564028877f92c5a1176744ee6e2cc9 Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 16:54:04 +0530 Subject: [PATCH 6/9] doc: screenshos --- README.md | 8 +++++++- banner.jpg => assets/banner.jpg | Bin assets/ss1.png | Bin 0 -> 56316 bytes assets/ss2.png | Bin 0 -> 28887 bytes assets/ss3.png | Bin 0 -> 27371 bytes 5 files changed, 7 insertions(+), 1 deletion(-) rename banner.jpg => assets/banner.jpg (100%) create mode 100644 assets/ss1.png create mode 100644 assets/ss2.png create mode 100644 assets/ss3.png diff --git a/README.md b/README.md index 04a54a1..ffff759 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ (didn't want to call it tauthy or Taegis) -![Logo](banner.jpg) +![Logo](assets/banner.jpg) ## Badges @@ -10,6 +10,12 @@ ![GitHub issues](https://badgen.net/github/issues/fosslife/truthy) ![GitHub stars](https://badgen.net/github/stars/fosslife/truthy) ![Latest release](https://badgen.net/github/release/fosslife/truthy) +## Screenshots + +![ss1](assets/ss1.png) +![ss2](assets/ss2.png) +![ss3](assets/ss3.png) + ## Summary - Data is stored in battle-tested KBDX format diff --git a/banner.jpg b/assets/banner.jpg similarity index 100% rename from banner.jpg rename to assets/banner.jpg diff --git a/assets/ss1.png b/assets/ss1.png new file mode 100644 index 0000000000000000000000000000000000000000..03c6999fafd18696523b0471177dddfa5b730c54 GIT binary patch literal 56316 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

u=OtR%^Hs?LZT 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

h4Pb#Eccq~HZaL$4-pGLv?w^Hxakh1<89V=}=2 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 literal 0 HcmV?d00001 From b4db719ce313c54879f5c5da25deb611da19efec Mon Sep 17 00:00:00 2001 From: Sparkenstein Date: Sat, 15 Jun 2024 17:15:19 +0530 Subject: [PATCH 7/9] feat: all new themes --- src/contexts/Settings.tsx | 9 ++++- src/contexts/Theme.tsx | 57 +++++++++++++++++++++++++++ src/main.tsx | 26 ++---------- src/pages/Home/components/Sidebar.tsx | 25 ++++++++++-- src/utils/random.ts | 7 +++- 5 files changed, 94 insertions(+), 30 deletions(-) create mode 100644 src/contexts/Theme.tsx diff --git a/src/contexts/Settings.tsx b/src/contexts/Settings.tsx index d6838c3..4901c34 100644 --- a/src/contexts/Settings.tsx +++ b/src/contexts/Settings.tsx @@ -1,12 +1,15 @@ import { createContext, useContext, useEffect, useState } from "react"; import { useAppContext } from "./App"; import { savedb } from "../utils/kdbx"; +import { baseColors } from "../utils/random"; +import { useTheme } from "./Theme"; export type Settings = { blurMode: boolean; digitGrouping: string; minimizeOnCopy: boolean; view: "compact" | "card"; + theme: (typeof baseColors)[number]; }; type SettingsContext = { @@ -24,6 +27,7 @@ const defaultSettings: Settings = { digitGrouping: "3", minimizeOnCopy: false, view: "card", + theme: "brand", }; export const SettingsContextProvider = ({ @@ -33,6 +37,7 @@ export const SettingsContextProvider = ({ }) => { const [settings, setSettings] = useState(defaultSettings); const { db, group } = useAppContext(); + const { changePrimaryColor } = useTheme(); useEffect(() => { if (!db) return; @@ -47,7 +52,9 @@ export const SettingsContextProvider = ({ async function init() { const settings = db?.meta.customData?.get("settings"); if (settings) { - setSettings(JSON.parse(settings.value!)); + const s = JSON.parse(settings.value!); + setSettings(s); + changePrimaryColor(s.theme); return; } setSettings({ ...defaultSettings }); diff --git a/src/contexts/Theme.tsx b/src/contexts/Theme.tsx new file mode 100644 index 0000000..0ccde5b --- /dev/null +++ b/src/contexts/Theme.tsx @@ -0,0 +1,57 @@ +import { + MantineColorsTuple, + MantineProvider, + createTheme, +} from "@mantine/core"; +import { PropsWithChildren, createContext, useContext, useState } from "react"; + +type ThemeContextType = { + color: string; + changePrimaryColor: (color: string) => void; +}; + +const ThemeContext = createContext({ + color: "blue", + changePrimaryColor: () => {}, +}); + +const brand: MantineColorsTuple = [ + "#ffeaf3", + "#fdd4e1", + "#f4a7bf", + "#ec779c", + "#e64f7e", + "#e3356b", + "#e22762", + "#c91a52", + "#b41149", + "#9f003e", +]; + +export const ThemeProvider: React.FC = ({ children }) => { + const [primaryColor, setPrimaryColor] = useState("brand"); + + const theme = createTheme({ + components: {}, + primaryColor, + colors: { + brand, + }, + }); + + const changePrimaryColor = (color: string) => { + setPrimaryColor(color); + }; + + return ( + + + {children} + + + ); +}; + +export const useTheme = () => { + return useContext(ThemeContext); +}; diff --git a/src/main.tsx b/src/main.tsx index 87e6a86..281405f 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -17,6 +17,7 @@ import { SettingsContextProvider } from "./contexts/Settings"; import EntryDetails from "./pages/New/indx"; import { createDir, exists } from "@tauri-apps/api/fs"; import { appDataDir } from "@tauri-apps/api/path"; +import { ThemeProvider } from "./contexts/Theme"; const browserRouter = createBrowserRouter([ { @@ -31,27 +32,6 @@ const browserRouter = createBrowserRouter([ { path: "/edit/:id", element: }, ]); -const myColor: MantineColorsTuple = [ - "#ffeaf3", - "#fdd4e1", - "#f4a7bf", - "#ec779c", - "#e64f7e", - "#e3356b", - "#e22762", - "#c91a52", - "#b41149", - "#9f003e", -]; - -const theme = createTheme({ - components: {}, - primaryColor: "brand", - colors: { - brand: myColor, - }, -}); - (async () => { const appDatadir = await appDataDir(); console.log("appDatadir", appDatadir); @@ -66,7 +46,7 @@ const theme = createTheme({ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - + - + ); diff --git a/src/pages/Home/components/Sidebar.tsx b/src/pages/Home/components/Sidebar.tsx index 373837c..ab90a22 100644 --- a/src/pages/Home/components/Sidebar.tsx +++ b/src/pages/Home/components/Sidebar.tsx @@ -18,6 +18,8 @@ import { ImportModal } from "../../../components/Modals/ImportModal"; import { useSettings, Settings } from "../../../contexts/Settings"; import { ExportModal } from "../../../components/Modals/ExportModal"; import { ChangePasswordModal } from "../../../components/Modals/ChangePasswordModal"; +import { baseColors } from "../../../utils/random"; +import { useTheme } from "../../../contexts/Theme"; type Props = { drawerOpened: boolean; @@ -40,6 +42,8 @@ export const Sidebar = ({ closeDrawer, drawerOpened }: Props) => { const { settings, setSettings } = useSettings(); + const { color, changePrimaryColor } = useTheme(); + const theme = useMantineTheme(); const saveAndMergeSettings = async (newSetting: Partial) => { @@ -73,9 +77,22 @@ export const Sidebar = ({ closeDrawer, drawerOpened }: Props) => { title="Settings" > - + <Title c={color} order={6}> Appearance + + Theme +