forked from vergnet/application-amicale
Grouped all services in a single class for easier manipulation
This commit is contained in:
parent
1c7768d029
commit
ac19b77fd3
4 changed files with 273 additions and 147 deletions
|
@ -13,6 +13,7 @@ type Props = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export type cardItem = {
|
export type cardItem = {
|
||||||
|
key: string,
|
||||||
title: string,
|
title: string,
|
||||||
subtitle: string,
|
subtitle: string,
|
||||||
image: string | number,
|
image: string | number,
|
||||||
|
@ -44,7 +45,7 @@ export default class CardList extends React.Component<Props> {
|
||||||
return <CardListItem item={item} key={item.title}/>;
|
return <CardListItem item={item} key={item.title}/>;
|
||||||
};
|
};
|
||||||
|
|
||||||
keyExtractor = (item: cardItem) => item.title;
|
keyExtractor = (item: cardItem) => item.key;
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let containerStyle = {};
|
let containerStyle = {};
|
||||||
|
|
261
src/managers/ServicesManager.js
Normal file
261
src/managers/ServicesManager.js
Normal file
|
@ -0,0 +1,261 @@
|
||||||
|
// @flow
|
||||||
|
|
||||||
|
import type {cardList} from "../components/Lists/CardList/CardList";
|
||||||
|
import i18n from "i18n-js";
|
||||||
|
import AvailableWebsites from "../constants/AvailableWebsites";
|
||||||
|
import {StackNavigationProp} from "@react-navigation/stack";
|
||||||
|
import ConnectionManager from "./ConnectionManager";
|
||||||
|
|
||||||
|
const CLUBS_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Clubs.png";
|
||||||
|
const PROFILE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/ProfilAmicaliste.png";
|
||||||
|
const EQUIPMENT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Materiel.png";
|
||||||
|
const VOTE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Vote.png";
|
||||||
|
const AMICALE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/WebsiteAmicale.png";
|
||||||
|
|
||||||
|
const PROXIMO_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Proximo.png"
|
||||||
|
const WIKETUD_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Wiketud.png";
|
||||||
|
const EE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/EEC.png";
|
||||||
|
const TUTORINSA_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/TutorINSA.png";
|
||||||
|
|
||||||
|
const BIB_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Bib.png";
|
||||||
|
const RU_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/RU.png";
|
||||||
|
const ROOM_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Salles.png";
|
||||||
|
const EMAIL_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Bluemind.png";
|
||||||
|
const ENT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/ENT.png";
|
||||||
|
const ACCOUNT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Account.png";
|
||||||
|
|
||||||
|
export const SERVICES_KEY = {
|
||||||
|
CLUBS: "clubs",
|
||||||
|
PROFILE:"profile",
|
||||||
|
EQUIPMENT: "equipment",
|
||||||
|
AMICALE_WEBSITE: "amicale_website",
|
||||||
|
VOTE: "vote",
|
||||||
|
PROXIMO: "proximo",
|
||||||
|
WIKETUD: "wiketud",
|
||||||
|
ELUS_ETUDIANTS: "elus_etudiants",
|
||||||
|
TUTOR_INSA: "tutor_insa",
|
||||||
|
RU: "ru",
|
||||||
|
AVAILABLE_ROOMS: "available_rooms",
|
||||||
|
BIB: "bib",
|
||||||
|
EMAIL: "email",
|
||||||
|
ENT: "ent",
|
||||||
|
INSA_ACCOUNT: "insa_account",
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class ServicesManager {
|
||||||
|
|
||||||
|
navigation: StackNavigationProp;
|
||||||
|
|
||||||
|
amicaleDataset: cardList;
|
||||||
|
studentsDataset: cardList;
|
||||||
|
insaDataset: cardList;
|
||||||
|
|
||||||
|
constructor(nav: StackNavigationProp) {
|
||||||
|
this.navigation = nav;
|
||||||
|
this.amicaleDataset = [
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.CLUBS,
|
||||||
|
title: i18n.t('screens.clubs.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.clubs'),
|
||||||
|
image: CLUBS_IMAGE,
|
||||||
|
onPress: () => this.onAmicaleServicePress("club-list"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.PROFILE,
|
||||||
|
title: i18n.t('screens.profile.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.profile'),
|
||||||
|
image: PROFILE_IMAGE,
|
||||||
|
onPress: () => this.onAmicaleServicePress("profile"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.EQUIPMENT,
|
||||||
|
title: i18n.t('screens.equipment.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.equipment'),
|
||||||
|
image: EQUIPMENT_IMAGE,
|
||||||
|
onPress: () => this.onAmicaleServicePress("equipment-list"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.AMICALE_WEBSITE,
|
||||||
|
title: i18n.t('screens.websites.amicale'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.amicaleWebsite'),
|
||||||
|
image: AMICALE_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.AMICALE, title: i18n.t('screens.websites.amicale')}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.VOTE,
|
||||||
|
title: i18n.t('screens.vote.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.vote'),
|
||||||
|
image: VOTE_IMAGE,
|
||||||
|
onPress: () => this.onAmicaleServicePress("vote"),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
this.studentsDataset = [
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.PROXIMO,
|
||||||
|
title: i18n.t('screens.proximo.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.proximo'),
|
||||||
|
image: PROXIMO_IMAGE,
|
||||||
|
onPress: () => nav.navigate("proximo"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.WIKETUD,
|
||||||
|
title: "Wiketud",
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.wiketud'),
|
||||||
|
image: WIKETUD_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.WIKETUD, title: "Wiketud"}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.ELUS_ETUDIANTS,
|
||||||
|
title: "Élus Étudiants",
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.elusEtudiants'),
|
||||||
|
image: EE_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.WIKETUD, title: "Wiketud"}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.TUTOR_INSA,
|
||||||
|
title: "Tutor'INSA",
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.tutorInsa'),
|
||||||
|
image: TUTORINSA_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.TUTOR_INSA, title: "Tutor'INSA"})
|
||||||
|
},
|
||||||
|
];
|
||||||
|
this.insaDataset = [
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.RU,
|
||||||
|
title: i18n.t('screens.menu.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.self'),
|
||||||
|
image: RU_IMAGE,
|
||||||
|
onPress: () => nav.navigate("self-menu"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.AVAILABLE_ROOMS,
|
||||||
|
title: i18n.t('screens.websites.rooms'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.availableRooms'),
|
||||||
|
image: ROOM_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.AVAILABLE_ROOMS, title: i18n.t('screens.websites.rooms')}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.BIB,
|
||||||
|
title: i18n.t('screens.websites.bib'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.bib'),
|
||||||
|
image: BIB_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.BIB, title: i18n.t('screens.websites.bib')}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.EMAIL,
|
||||||
|
title: i18n.t('screens.websites.mails'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.mails'),
|
||||||
|
image: EMAIL_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.BLUEMIND, title: i18n.t('screens.websites.mails')}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.ENT,
|
||||||
|
title: i18n.t('screens.websites.ent'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.ent'),
|
||||||
|
image: ENT_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.ENT, title: i18n.t('screens.websites.ent')}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: SERVICES_KEY.INSA_ACCOUNT,
|
||||||
|
title: i18n.t('screens.insaAccount.title'),
|
||||||
|
subtitle: i18n.t('screens.services.descriptions.insaAccount'),
|
||||||
|
image: ACCOUNT_IMAGE,
|
||||||
|
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.INSA_ACCOUNT, title: i18n.t('screens.insaAccount.title')}),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redirects the user to the login screen if he is not logged in
|
||||||
|
*
|
||||||
|
* @param route
|
||||||
|
* @returns {null}
|
||||||
|
*/
|
||||||
|
onAmicaleServicePress(route: string) {
|
||||||
|
if (ConnectionManager.getInstance().isLoggedIn())
|
||||||
|
this.navigation.navigate(route);
|
||||||
|
else
|
||||||
|
this.navigation.navigate("login", {nextScreen: route});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the given services list without items of the given ids
|
||||||
|
*
|
||||||
|
* @param idList The ids of items to remove
|
||||||
|
* @param sourceList The item list to use as source
|
||||||
|
* @returns {[]}
|
||||||
|
*/
|
||||||
|
getStrippedList(idList: Array<string>, sourceList: cardList) {
|
||||||
|
let newArray = [];
|
||||||
|
for (let i = 0; i < sourceList.length; i++) {
|
||||||
|
const item = sourceList[i];
|
||||||
|
if (!(idList.includes(item.key)))
|
||||||
|
newArray.push(item);
|
||||||
|
}
|
||||||
|
return newArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a services list of items with the given ids only
|
||||||
|
*
|
||||||
|
* @param idList The ids of items to find
|
||||||
|
* @returns {[]}
|
||||||
|
*/
|
||||||
|
getServicesOfId(idList: Array<string>) {
|
||||||
|
const allServices = [
|
||||||
|
...this.amicaleDataset,
|
||||||
|
...this.studentsDataset,
|
||||||
|
...this.insaDataset,
|
||||||
|
]
|
||||||
|
let servicesFound = [];
|
||||||
|
for (let i = 0; i < allServices.length; i++) {
|
||||||
|
const item = allServices[i];
|
||||||
|
if (idList.includes(item.key)) {
|
||||||
|
servicesFound.push(item);
|
||||||
|
if (servicesFound.length === idList.length)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return servicesFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of amicale's services
|
||||||
|
*
|
||||||
|
* @param excludedItems Ids of items to exclude from the returned list
|
||||||
|
* @returns {cardList|*[]}
|
||||||
|
*/
|
||||||
|
getAmicaleServices(excludedItems?: Array<string>) {
|
||||||
|
if (excludedItems != null)
|
||||||
|
return this.getStrippedList(excludedItems, this.amicaleDataset)
|
||||||
|
else
|
||||||
|
return this.amicaleDataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of students' services
|
||||||
|
*
|
||||||
|
* @param excludedItems Ids of items to exclude from the returned list
|
||||||
|
* @returns {cardList|*[]}
|
||||||
|
*/
|
||||||
|
getStudentServices(excludedItems?: Array<string>) {
|
||||||
|
if (excludedItems != null)
|
||||||
|
return this.getStrippedList(excludedItems, this.studentsDataset)
|
||||||
|
else
|
||||||
|
return this.studentsDataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of INSA's services
|
||||||
|
*
|
||||||
|
* @param excludedItems Ids of items to exclude from the returned list
|
||||||
|
* @returns {cardList|*[]}
|
||||||
|
*/
|
||||||
|
getINSAServices(excludedItems?: Array<string>) {
|
||||||
|
if (excludedItems != null)
|
||||||
|
return this.getStrippedList(excludedItems, this.insaDataset)
|
||||||
|
else
|
||||||
|
return this.insaDataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -16,6 +16,7 @@ import {StackNavigationProp} from "@react-navigation/stack";
|
||||||
import type {CustomTheme} from "../../managers/ThemeManager";
|
import type {CustomTheme} from "../../managers/ThemeManager";
|
||||||
import AvailableWebsites from "../../constants/AvailableWebsites";
|
import AvailableWebsites from "../../constants/AvailableWebsites";
|
||||||
import Mascot, {MASCOT_STYLE} from "../../components/Mascot/Mascot";
|
import Mascot, {MASCOT_STYLE} from "../../components/Mascot/Mascot";
|
||||||
|
import ServicesManager, {SERVICES_KEY} from "../../managers/ServicesManager";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
navigation: StackNavigationProp,
|
navigation: StackNavigationProp,
|
||||||
|
@ -44,11 +45,6 @@ type Club = {
|
||||||
is_manager: boolean,
|
is_manager: boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
const CLUBS_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Clubs.png";
|
|
||||||
const VOTE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Vote.png";
|
|
||||||
|
|
||||||
const ICON_AMICALE = require('../../../assets/amicale.png');
|
|
||||||
|
|
||||||
class ProfileScreen extends React.Component<Props, State> {
|
class ProfileScreen extends React.Component<Props, State> {
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
|
@ -60,37 +56,16 @@ class ProfileScreen extends React.Component<Props, State> {
|
||||||
flatListData: Array<{ id: string }>;
|
flatListData: Array<{ id: string }>;
|
||||||
amicaleDataset: cardList;
|
amicaleDataset: cardList;
|
||||||
|
|
||||||
constructor() {
|
constructor(props: Props) {
|
||||||
super();
|
super(props);
|
||||||
this.flatListData = [
|
this.flatListData = [
|
||||||
{id: '0'},
|
{id: '0'},
|
||||||
{id: '1'},
|
{id: '1'},
|
||||||
{id: '2'},
|
{id: '2'},
|
||||||
{id: '3'},
|
{id: '3'},
|
||||||
]
|
]
|
||||||
this.amicaleDataset = [
|
const services = new ServicesManager(props.navigation);
|
||||||
{
|
this.amicaleDataset = services.getAmicaleServices([SERVICES_KEY.PROFILE]);
|
||||||
title: i18n.t('screens.clubs.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.clubs'),
|
|
||||||
image: CLUBS_IMAGE,
|
|
||||||
onPress: () => this.props.navigation.navigate("club-list"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.vote.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.vote'),
|
|
||||||
image: VOTE_IMAGE,
|
|
||||||
onPress: () => this.props.navigation.navigate("vote"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.amicale'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.amicaleWebsite'),
|
|
||||||
image: ICON_AMICALE,
|
|
||||||
onPress: () => this.props.navigation.navigate("website", {
|
|
||||||
host: AvailableWebsites.websites.AMICALE,
|
|
||||||
title: i18n.t('screens.websites.amicale')
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
|
|
@ -13,10 +13,10 @@ import i18n from 'i18n-js';
|
||||||
import MaterialHeaderButtons, {Item} from "../../components/Overrides/CustomHeaderButton";
|
import MaterialHeaderButtons, {Item} from "../../components/Overrides/CustomHeaderButton";
|
||||||
import ConnectionManager from "../../managers/ConnectionManager";
|
import ConnectionManager from "../../managers/ConnectionManager";
|
||||||
import {StackNavigationProp} from "@react-navigation/stack";
|
import {StackNavigationProp} from "@react-navigation/stack";
|
||||||
import AvailableWebsites from "../../constants/AvailableWebsites";
|
|
||||||
import {MASCOT_STYLE} from "../../components/Mascot/Mascot";
|
import {MASCOT_STYLE} from "../../components/Mascot/Mascot";
|
||||||
import MascotPopup from "../../components/Mascot/MascotPopup";
|
import MascotPopup from "../../components/Mascot/MascotPopup";
|
||||||
import AsyncStorageManager from "../../managers/AsyncStorageManager";
|
import AsyncStorageManager from "../../managers/AsyncStorageManager";
|
||||||
|
import ServicesManager from "../../managers/ServicesManager";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
navigation: StackNavigationProp,
|
navigation: StackNavigationProp,
|
||||||
|
@ -38,24 +38,6 @@ export type listItem = {
|
||||||
|
|
||||||
const AMICALE_LOGO = require("../../../assets/amicale.png");
|
const AMICALE_LOGO = require("../../../assets/amicale.png");
|
||||||
|
|
||||||
const CLUBS_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Clubs.png";
|
|
||||||
const PROFILE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/ProfilAmicaliste.png";
|
|
||||||
const EQUIPMENT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Materiel.png";
|
|
||||||
const VOTE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Vote.png";
|
|
||||||
const AMICALE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/WebsiteAmicale.png";
|
|
||||||
|
|
||||||
const PROXIMO_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Proximo.png"
|
|
||||||
const WIKETUD_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Wiketud.png";
|
|
||||||
const EE_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/EEC.png";
|
|
||||||
const TUTORINSA_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/TutorINSA.png";
|
|
||||||
|
|
||||||
const BIB_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Bib.png";
|
|
||||||
const RU_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/RU.png";
|
|
||||||
const ROOM_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Salles.png";
|
|
||||||
const EMAIL_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Bluemind.png";
|
|
||||||
const ENT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/ENT.png";
|
|
||||||
const ACCOUNT_IMAGE = "https://etud.insa-toulouse.fr/~amicale_app/images/Account.png";
|
|
||||||
|
|
||||||
class ServicesScreen extends React.Component<Props, State> {
|
class ServicesScreen extends React.Component<Props, State> {
|
||||||
|
|
||||||
amicaleDataset: cardList;
|
amicaleDataset: cardList;
|
||||||
|
@ -70,103 +52,10 @@ class ServicesScreen extends React.Component<Props, State> {
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
const nav = props.navigation;
|
const services = new ServicesManager(props.navigation);
|
||||||
this.amicaleDataset = [
|
this.amicaleDataset = services.getAmicaleServices();
|
||||||
{
|
this.studentsDataset = services.getStudentServices();
|
||||||
title: i18n.t('screens.clubs.title'),
|
this.insaDataset = services.getINSAServices();
|
||||||
subtitle: i18n.t('screens.services.descriptions.clubs'),
|
|
||||||
image: CLUBS_IMAGE,
|
|
||||||
onPress: () => this.onAmicaleServicePress("club-list"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.profile.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.profile'),
|
|
||||||
image: PROFILE_IMAGE,
|
|
||||||
onPress: () => this.onAmicaleServicePress("profile"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.equipment.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.equipment'),
|
|
||||||
image: EQUIPMENT_IMAGE,
|
|
||||||
onPress: () => this.onAmicaleServicePress("equipment-list"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.amicale'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.amicaleWebsite'),
|
|
||||||
image: AMICALE_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.AMICALE, title: i18n.t('screens.websites.amicale')}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.vote.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.vote'),
|
|
||||||
image: VOTE_IMAGE,
|
|
||||||
onPress: () => this.onAmicaleServicePress("vote"),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
this.studentsDataset = [
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.proximo.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.proximo'),
|
|
||||||
image: PROXIMO_IMAGE,
|
|
||||||
onPress: () => nav.navigate("proximo"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Wiketud",
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.wiketud'),
|
|
||||||
image: WIKETUD_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.WIKETUD, title: "Wiketud"}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Élus Étudiants",
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.elusEtudiants'),
|
|
||||||
image: EE_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.ELUS_ETUDIANTS, title: "Élus Étudiants"}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Tutor'INSA",
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.tutorInsa'),
|
|
||||||
image: TUTORINSA_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.TUTOR_INSA, title: "Tutor'INSA"})
|
|
||||||
},
|
|
||||||
];
|
|
||||||
this.insaDataset = [
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.menu.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.self'),
|
|
||||||
image: RU_IMAGE,
|
|
||||||
onPress: () => nav.navigate("self-menu"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.rooms'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.availableRooms'),
|
|
||||||
image: ROOM_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.AVAILABLE_ROOMS, title: i18n.t('screens.websites.rooms')}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.bib'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.bib'),
|
|
||||||
image: BIB_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.BIB, title: i18n.t('screens.websites.bib')}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.mails'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.mails'),
|
|
||||||
image: EMAIL_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.BLUEMIND, title: i18n.t('screens.websites.mails')}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.websites.ent'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.ent'),
|
|
||||||
image: ENT_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.ENT, title: i18n.t('screens.websites.ent')}),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: i18n.t('screens.insaAccount.title'),
|
|
||||||
subtitle: i18n.t('screens.services.descriptions.insaAccount'),
|
|
||||||
image: ACCOUNT_IMAGE,
|
|
||||||
onPress: () => nav.navigate("website", {host: AvailableWebsites.websites.INSA_ACCOUNT, title: i18n.t('screens.insaAccount.title')}),
|
|
||||||
},
|
|
||||||
];
|
|
||||||
this.finalDataset = [
|
this.finalDataset = [
|
||||||
{
|
{
|
||||||
title: i18n.t("screens.services.categories.amicale"),
|
title: i18n.t("screens.services.categories.amicale"),
|
||||||
|
|
Loading…
Reference in a new issue