Skip to content

Commit

Permalink
add view
Browse files Browse the repository at this point in the history
  • Loading branch information
Tatyana-js committed Jun 7, 2024
1 parent c2dd342 commit 449bfd4
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 22 deletions.
46 changes: 25 additions & 21 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,35 +59,39 @@ export default () => {

renderForm();

const loudFeedsAndPosts = (url) => {
axios.get(createLink(url))
.then((responce) => {
const parseData = parse(responce.data.contents);
const { feed, posts } = parseData;
const id = uniqueId();
watchedState.feeds.push({ ...feed, feedId: id, url });
console.log(watchedState.feeds);
posts.forEach((post) => watchedState.posts.push({ ...post, id }));
watchedState.loadingProcess.status = 'finished';
watchedState.loadingProcess.error = '';
})
.catch((error) => {
if (error.isAxiosError) {
watchedState.loadingProcess.error = 'networkError';
} else if (error.message === 'invalidRSS') {
watchedState.loadingProcess.error = 'invalidRSS';
} else {
watchedState.loadingProcess.error = 'existsRss';
}
});
};

elements.form.addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const urlTarget = formData.get('url').trim();
const urlFeeds = watchedState.feeds.map(({ url }) => url);

watchedState.loadingProcess.state = 'sending';
watchedState.loadingProcess.status = 'sending';

validate(urlTarget, urlFeeds)
.then(({ url }) => axios.get(createLink(url))
.then((responce) => {
const parseData = parse(responce.data.contents);
console.log(parseData);
const { feed, posts } = parseData;
const id = uniqueId();
watchedState.feeds.push({ ...feed, feedId: id, link: urlTarget });
posts.forEach((post) => watchedState.posts.push({ ...post, id }));
watchedState.loadingProcess.status = 'finished';
watchedState.loadingProcess.error = '';
})
.catch((error) => {
console.log(error);
if (error.isAxiosError) {
watchedState.loadingProcess.error = 'networkError';
} else if (error.message === 'invalidRSS') {
watchedState.loadingProcess.error = 'invalidRSS';
}
watchedState.loadingProcess.error = 'existsRss';
}))
.then(({ url }) => loudFeedsAndPosts(url))
.catch((error) => {
watchedState.form.status = 'invalid';
watchedState.form.errors.push(error);
Expand Down
7 changes: 6 additions & 1 deletion src/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export default (elements, i18n, state) => {
if (value === 'pending') {
renderForm();
} else if (value === 'invalid') {
console.log(value);
input.classList.add('is-invalid');
errorElement.classList.remove('text-success');
errorElement.classList.add('text-danger');
Expand All @@ -32,11 +33,13 @@ export default (elements, i18n, state) => {
case 'loadingProcess.status':
if (value === 'sending') {
errorElement.textContent = '';
input.classList.remove('is-invalid');
button.disabled = true;
}
break;
case 'watchedState.loadingProcess.error':
case 'loadingProcess.error':
if (value === 'networkError') {
input.classList.remove('is-invalid');
errorElement.textContent = t('errors.networkError');
}
if (value === 'invalidRSS') {
Expand All @@ -45,6 +48,8 @@ export default (elements, i18n, state) => {
errorElement.textContent = t('errors.invalidRSS');
}
if (value === 'existsRss') {
input.classList.add('is-invalid');
errorElement.classList.add('text-danger');
errorElement.textContent = t('errors.existsRss');
}
break;
Expand Down

0 comments on commit 449bfd4

Please sign in to comment.