• [^] # Re: Pas de répit pour les pillards

    Posté par . En réponse au journal À la recherche d'une alternative libre à Notion ou Obsidian : j'ai créé MindZJ (OSS) via Vibe coding. Évalué à 10 (+14/-0).

    tu veux dire le fichier avec un App.tsx avec plus de 3k lignes ?

    Qui va pour toutes les évènements configuré vérifier si les touches pressées correspondent ? précisant à chaque fois la valeur par défaut du raccourcis (handleGlobalKeydown)

    qui en plus va faire du regex sur les raccourcis car ils sont stockés comme "Ctrl+A", et ça pour chacune de commandes

    Plus tu rajoutes de commande plus le traitement devient lent :)

    Alors qu'une solution je prends ma touche enfoncé je rajoute les modificateurs (alt, ctrl, super, altgr, meta) pour générer une chaine, je regarde dans le tableau des action if(var plop = actionMap[keyStrokeToActionKeyKey(e)]) { stopPropagation(e); plop(e) };
    et après t'as juste à ajouter dedans, ça évite les gros machins en dur; et si t'as besoin de context, tu peux avoir un globalActionMap, et un contextActionMap, voir même un empilement de contextes si nécessaire. Tu peux aussi regarder si y'a pas des mécanismes pour gérer ça plus proprement en js, je suis pas une référence en la matière.

    L'énorme intérêt c'est qu'après tu peux utiliser des mécanismes pour ajouter / retirer des actions, avoir des contexte dont les actions ne dépendent pas de App.tsx, et en plus tu réduis la taille de App.tsx.

    Et ça, c'est juste en regardant rapidement.

    Sinon le code est beau... mais beau ne signifie pas efficient.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent