NorbertJu / ResolutionEditor

Bachelor thesis
GNU General Public License v3.0
1 stars 0 forks source link

Embedovateľná verzia #21

Open crnkjck opened 4 years ago

crnkjck commented 4 years ago

Dohodnúť a implementovať interface na vkladanie editora do pracovného hárku s Nikolajom Knihom.

crnkjck commented 4 years ago

Vŕtal som sa trocha v kóde a zistil som, že import, ktorý poskytujete embedujúcej aplikácii nie je ekvivalentný s importom zo súboru. Import zo súboru okrem iného volá steps reducer, ktorý zrejme zvaliduje všetky kroky a okrem iného doplní objektové reprezentácie sparsovaných klauzúl. Toto sa pri embedovanom importe nestane, takže editor následne hádže výnimky.

Bolo by najlepšie, keby sa čo najväčšia časť importovacieho kódu zdieľala, aby bolo zaručené, že rekonštrukcia všetkých častí stavu a úvodná validácia prebehnú rovnako a dajú sa testovať aj v samostatnom editore.

Ešte som si všimol jeden problém s prácou s id v stave. Pri pridaní kroku (a možno aj inokedy) sa inkrementuje namieste pomocou id++. To nie bezpečné. Používajte id+1{..., id: id+1, ...}.

Pre embedovanie je ešte potrebné zabezpečiť unikátnosť atribútov id inputov vo formulároch (to samozrejme nesúvisí s internými id-čkami krokov). Každopádne aplikácia by mala mať prop idPrefix alebo idSuffix, ktorý sa bude priliepať k id inputov a atribútov forlabeloch, aby boli unikátne v rámci celého hárku.