Quellcode durchsuchen

Add word API integration + pull shared module

master
kj1352 vor 4 Jahren
Ursprung
Commit
6b6cd9b2c0
3 geänderte Dateien mit 40 neuen und 26 gelöschten Zeilen
  1. +36
    -17
      src/components/add-word/AddWord.tsx
  2. +3
    -8
      src/services/shelf.ts
  3. +1
    -1
      src/shared

+ 36
- 17
src/components/add-word/AddWord.tsx Datei anzeigen

@@ -6,20 +6,22 @@ import { ReactComponent as SpeakerIcon } from '../../assets/icons/speaker.svg';
import { ReactComponent as AddIcon } from '../../assets/icons/plus.svg';

import { NavLink, useHistory } from "react-router-dom";
import { userProfileData } from "../../App";
import { getWordResult } from "../../services/words";
import { Word } from "../../shared/models/word";
import { MobileWord } from "../../shared/models/word";
import { MobileUser } from "../../shared/models/user";
import { updateShelf } from "../../services/shelf";

export const AddWord: React.FC = () => {
const [searchResult, setSearchResult] = useState<Array<Word>>();
const [selectedWord, setSelectedWord] = useState<Word>();
const [searchResult, setSearchResult] = useState<Array<MobileWord>>();
const [selectedWord, setSelectedWord] = useState<MobileWord>();
const [searchWord, setSearchWord] = useState<string>('');
const userProfile: MobileUser = JSON.parse(localStorage.getItem('userProfile') || "");
const history = useHistory();

const searchWords = () => {
if (searchWord.length > 0) {
getWordResult(searchWord).then((wordResult: any) => {
let result: Array<Word> = wordResult.data;
let result: Array<MobileWord> = wordResult.data;
setSearchResult(result);
}, err => {
console.log("Unable to search Words", err)
@@ -41,11 +43,6 @@ export const AddWord: React.FC = () => {
</button>
{!selectedWord && <h5> Add a Word </h5>}
{selectedWord && <h5> Add to Shelf </h5>}

<figure style={{ opacity: selectedWord ? 0 : 1 }}>
{/* eslint-disable-next-line */}
<img src={userProfileData.image} alt="profile-image" />
</figure>
</header>

{!selectedWord && <section>
@@ -90,16 +87,38 @@ export const AddWord: React.FC = () => {
<header>
<h5> All Shelves </h5>
</header>
{userProfileData.categories.map((category, categoryIndex) => {
return category.shelves.map((shelf, shelfIndex) => {
return <li key={shelf.name} onClick={() => {
let findWord = userProfileData.categories[categoryIndex].shelves[shelfIndex].words.find(word => word.name.toLowerCase().includes(selectedWord.name.toLowerCase()));
{userProfile.categories.map((category) => {
return category?.shelves?.map((shelf, shelfIndex) => {
return <li key={shelfIndex} onClick={() => {

let words: any = shelf.words ? shelf.words : [];

if (findWord) {
if (words.findIndex((word: any) => word.word.name === selectedWord.name) >= 0) {
alert("Word already Present!");
} else {
// userProfileData.categories[categoryIndex].shelves[shelfIndex].words.push(selectedWord);
history.push('/shelf-details/category_id=' + categoryIndex + '&&shelf_id=' + shelfIndex);
words.push({
word: selectedWord,
notes: [],
isArchived: false,
spaceBetweenRecall: 1,
nextRevisionDateTime: new Date()
})
let updatedWords: any = [];
updatedWords = words.map((word: any) => {
return {
...word,
word: word.word._id,
}
});

updateShelf(shelf._id, updatedWords).then(() => {
history.push('/shelf-details/category_id=' + category._id + '&&shelf_id=' + shelf._id);
}, (err) => {
window.alert("Failed to update");
console.log(err);
});
}
}}>
<div className={styles.icon}>


+ 3
- 8
src/services/shelf.ts Datei anzeigen

@@ -26,16 +26,11 @@ export const addShelf = async (categoryId: string, name: string, isArchived: boo

//Need to be discussed

export const updateShelf = async (id: string, word: string, isArchived: boolean, spaceBetweenRecall: number) => {
export const updateShelf = async (id: string, words: Array<{word: string, notes: Array<string>, isArchived: boolean, spaceBetweenRecall: number}>) => {
return await axios.put(SERVER_URL + '/shelf/update/',
{
id: id,
words: [{
word: word,
notes: [],
isArchived: isArchived,
spaceBetweenRecall: spaceBetweenRecall
}]
_id: id,
words: words
},
{
headers: API_TOKEN


+ 1
- 1
src/shared

@@ -1 +1 @@
Subproject commit a3da6aa10843c3f2ecdd324879561c6bbdf257d0
Subproject commit 7627b89214ea79eaa139e1dab7e68a88bc322fe4

Laden…
Abbrechen
Speichern