diff --git a/package.json b/package.json
index 52a190c..6666281 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,9 @@
"private": true,
"scripts": {
"start": "react-scripts start",
- "build": "react-scripts build",
+ "build": "yarn build:page && yarn build:licenses",
+ "build:page": "react-scripts build",
+ "build:licenses": "yarn licenses generate-disclaimer --production > build/static/js/full-license-manifest.txt",
"test": "react-scripts test",
"eject": "react-scripts eject",
"prettify": "prettier --write src/",
diff --git a/src/model/routing.ts b/src/model/routing.ts
index 318e8f0..0fd872c 100644
--- a/src/model/routing.ts
+++ b/src/model/routing.ts
@@ -7,6 +7,7 @@ export enum AppPath {
ExpressionSetsPractice = "expression-sets/practice",
ExpressionSetsDetails = "expression-sets/details",
Settings = "settings",
+ CreateCards = "settings", // TODO split from settings
}
export interface RouteOptions {
diff --git a/src/styles/components.css b/src/styles/components.css
index 80f9b65..ad543d0 100644
--- a/src/styles/components.css
+++ b/src/styles/components.css
@@ -201,6 +201,12 @@ i {
align-items: center;
}
+.item-list {
+ padding-left: 16px;
+ list-style: disc;
+ margin: var(--gap-small) 0;
+}
+
.content-list {
display: flex;
flex-direction: column;
diff --git a/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx b/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx
index 09d716c..c13b8d8 100644
--- a/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx
+++ b/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx
@@ -46,7 +46,7 @@ export function DemoteExpressionButton({
onClick={handleClick}
>
- Wrong
+ I forgot
);
}
diff --git a/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx b/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx
index f7fa0be..3932d64 100644
--- a/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx
+++ b/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx
@@ -38,7 +38,7 @@ export function ExpressionPracticeCardView({
type="button"
onClick={() => setRevealed(true)}
>
- Reveal
+ Tap here to reveal the full card
)}
diff --git a/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx b/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx
index 498c232..83df99e 100644
--- a/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx
+++ b/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx
@@ -33,7 +33,7 @@ export function PromoteExpressionButton({
onClick={handleClick}
>
- Right
+ I remembered
);
}
diff --git a/src/views/HomeView/HomeView.tsx b/src/views/HomeView/HomeView.tsx
index d952024..c30b7f0 100644
--- a/src/views/HomeView/HomeView.tsx
+++ b/src/views/HomeView/HomeView.tsx
@@ -1,16 +1,45 @@
+import { useContext } from "react";
+import { AppPath, AppRouting } from "../../model/routing";
+
export function HomeView() {
+ const { setRoute } = useContext(AppRouting);
return (
- A handy tool for vocabulary practice through repetition. Go to{" "} - settings -> create card to start adding words for practicing. - Once you have a few go to practice and start from your daily words. + A handy tool for vocabulary practice through repetition. Go to + "settings" to add some words and you'll be ready to practice. +
+ ++ Newly created cards will go onto the "daily" deck. As you remember and + forget word definitions they will move to weekly, monthly, yearly or + back towards the daily deck. +
++ Words that are remembered beyond the highest level will be removed, and + words that are so poorly remembered that you find yourself attempting to + create cards for them more than once will have duplicate cards.
- The app requests data from Wiktionary when you create study cards. Their - privacy policy can be found{" "} + There is no data collection by the app. The app makes requests to + Wiktionary during card creation, their privacy policy can be found{" "} on this link - . Apart from the initial page load, this should be the only time any - data transfer happens during the usage of the app. -
-- Once you save a card, it is stored on your own device and never - transmitted anywhere else. + .
@@ -33,63 +57,46 @@ export function HomeView() { You are free to use the app for any purposes. You are free to modify and redistribute the app as long as you grant your users access to the source-code, content and assets you modify and redistribute under the - same terms listed below.{" "} - {" "} - As long as you follow those rules, you don't need to contact the - author(s) about it. -
-- The user-interface icons are licensed under the{" "} - - MIT license - - . -
-- The content for the study cards generated is dual-licensed under{" "} - - Creative Commons Attribution-ShareAlike 3.0 Unported License - {" "} - and the{" "} - - GNU Free Documentation License - - . -
-- The rest of the application and its assets are licensed under the{" "} - - GNU Affero General Public License version 3 - - . -
-- The official source code repository for this application can be found at{" "} - - git.studycardtool.org/tcoh/app - + same terms listed below + .
+This app would not exist if it was not for Wiktionary and the Wikimedia @@ -107,16 +114,17 @@ export function HomeView() {
- The main thing on the roadmap is improved language support for - vocabulary practice. The app still needs bugfixes, code and style - cleanup and potentially rethinking of some existing features. - Contributions introducing a need for smarter backend functionality than - a static file server are in principle unwelcome in this project. -
-- There are a few pending tasks in server configuration and testing, but - once those are done local gitea registrations for contributors should - open and potentially federated accounts as well. + Code, comments and feedback, design improvements are very much welcome. + To participate join the official repository + + here + + .