diff --git a/src/adapters/surveyAdapter.ts b/src/adapters/surveyAdapter.ts
new file mode 100644
index 0000000..654ee00
--- /dev/null
+++ b/src/adapters/surveyAdapter.ts
@@ -0,0 +1,21 @@
+import { getItem } from 'helpers/localStorage';
+
+import BaseAdapter from './baseAdapter.';
+
+/* eslint-disable camelcase */
+export const commonParams = {
+ access_token: getItem('UserProfile')?.auth?.access_token,
+};
+/* eslint-enable camelcase */
+
+class SurveyAdapter extends BaseAdapter {
+ static list() {
+ const requestParams = {
+ ...commonParams,
+ };
+
+ return this.prototype.getRequest('surveys', { data: requestParams });
+ }
+}
+
+export default SurveyAdapter;
diff --git a/src/components/Survey/index.tsx b/src/components/Survey/index.tsx
new file mode 100644
index 0000000..2b77c7f
--- /dev/null
+++ b/src/components/Survey/index.tsx
@@ -0,0 +1,17 @@
+type SurveyProps = {
+ title: string;
+ description: string;
+ coverImageUrl: string;
+};
+
+function Survey({ title, description, coverImageUrl }: SurveyProps) {
+ return (
+ <>
+
+
{title}
+ {description}
+ >
+ );
+}
+
+export default Survey;
diff --git a/src/components/SurveyList/index.tsx b/src/components/SurveyList/index.tsx
new file mode 100644
index 0000000..b9131a5
--- /dev/null
+++ b/src/components/SurveyList/index.tsx
@@ -0,0 +1,20 @@
+import SurveyComponent from 'components/Survey';
+import { Survey } from 'types/Survey';
+
+type SurveyListProps = { surveys: Survey[] };
+
+function SurveyList({ surveys }: SurveyListProps) {
+ return (
+
+ {surveys.map((survey) => {
+ return (
+
+
+
+ );
+ })}
+
+ );
+}
+
+export default SurveyList;
diff --git a/src/screens/Home/index.tsx b/src/screens/Home/index.tsx
index c87cb3e..f73763c 100644
--- a/src/screens/Home/index.tsx
+++ b/src/screens/Home/index.tsx
@@ -1,9 +1,51 @@
+import { useState, useEffect } from 'react';
+
+import SurveyAdapter from 'adapters/surveyAdapter';
+import { Survey } from 'types/Survey';
+import { SurveyResponse } from 'types/SurveyResponse';
+
+import SurveyList from '../../components/SurveyList';
+
const HomeScreen = (): JSX.Element => {
+ const [loaded, setLoaded] = useState(false);
+ const [surveys, setSurveys] = useState([]);
+
+ useEffect(() => {
+ const fetchSurveys = async () => {
+ const surveyResponse = await SurveyAdapter.list();
+
+ const surveyData: SurveyResponse = await surveyResponse.data;
+
+ const parsedSurveys: Survey[] = [];
+
+ surveyData.forEach((survey) => {
+ parsedSurveys.push({
+ id: survey.id,
+ title: survey.attributes.title,
+ description: survey.attributes.description,
+ coverImageUrl: survey.attributes.cover_image_url,
+ type: survey.attributes.survey_type,
+ });
+ });
+
+ setSurveys(parsedSurveys);
+
+ setLoaded(true);
+ };
+ fetchSurveys();
+ }, []);
+
+ if (!loaded) {
+ return Loading Surveys
;
+ }
+
return (
<>
- Home Screen
+ Today - Monday, June 15
+
+ {surveys.length > 0 && }
>
);
};
diff --git a/src/screens/ResetPassword/index.tsx b/src/screens/ResetPassword/index.tsx
index f03fcbe..c6deb33 100644
--- a/src/screens/ResetPassword/index.tsx
+++ b/src/screens/ResetPassword/index.tsx
@@ -23,9 +23,7 @@ function ResetPasswordScreen() {
const performPasswordReset = async () => {
try {
- const resetPasswordResponse = await AuthAdapter.resetPassword(email);
-
- console.log(resetPasswordResponse);
+ await AuthAdapter.resetPassword(email);
} catch (error) {
let errorMessage = t('login.generic-server-error');
diff --git a/src/types/Survey.ts b/src/types/Survey.ts
new file mode 100644
index 0000000..46734e8
--- /dev/null
+++ b/src/types/Survey.ts
@@ -0,0 +1,7 @@
+export type Survey = {
+ id: string;
+ title: string;
+ description: string;
+ type: string;
+ coverImageUrl: string;
+};
diff --git a/src/types/SurveyResponse.ts b/src/types/SurveyResponse.ts
new file mode 100644
index 0000000..ad57c53
--- /dev/null
+++ b/src/types/SurveyResponse.ts
@@ -0,0 +1,10 @@
+export type SurveyResponse = {
+ id: string;
+ type: string;
+ attributes: {
+ title: string;
+ description: string;
+ survey_type: string;
+ cover_image_url: string;
+ };
+}[];