120 lines
2.7 KiB
JavaScript
120 lines
2.7 KiB
JavaScript
import { Store } from 'pullstate';
|
|
|
|
export const AccountStore = new Store({
|
|
profile: {
|
|
firstname: 'Alan',
|
|
surname: 'Montgomery',
|
|
avatar: '/assets/DemoBankingUi/alan.jpg',
|
|
},
|
|
cards: [
|
|
{
|
|
id: 1,
|
|
type: 'visa',
|
|
description: 'Current Account',
|
|
number: '4859 2390 5635 7347',
|
|
expiry: '11/22',
|
|
secret: '483',
|
|
color: 'orange',
|
|
balance: '38.21',
|
|
transactions: [
|
|
{
|
|
name: 'Joe Bloggs',
|
|
amount: '2.50',
|
|
deposit: true,
|
|
},
|
|
{
|
|
name: 'Ocean Pratt',
|
|
amount: '12.99',
|
|
deposit: true,
|
|
},
|
|
{
|
|
name: 'Eugene Piper',
|
|
amount: '74.99',
|
|
deposit: false,
|
|
},
|
|
{
|
|
name: 'Emeli Potts',
|
|
amount: '4.20',
|
|
deposit: false,
|
|
},
|
|
{
|
|
name: 'Asia Wells',
|
|
amount: '12.73',
|
|
deposit: true,
|
|
},
|
|
{
|
|
name: 'Awais Brook',
|
|
amount: '17.10',
|
|
deposit: false,
|
|
},
|
|
{
|
|
name: 'Coen Haas',
|
|
amount: '9.99',
|
|
deposit: true,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 2,
|
|
type: 'visa',
|
|
description: 'Savings',
|
|
number: '7349 1284 6790 4587',
|
|
expiry: '05/23',
|
|
secret: '590',
|
|
color: 'blue',
|
|
balance: '120.90',
|
|
transactions: [
|
|
{
|
|
name: 'Joe Bloggs',
|
|
amount: '120.90',
|
|
deposit: true,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 3,
|
|
type: 'visa',
|
|
description: 'House Fund',
|
|
number: '6783 5692 4475 6682',
|
|
expiry: '01/24',
|
|
secret: '321',
|
|
color: 'purple',
|
|
balance: '0',
|
|
transactions: [],
|
|
},
|
|
],
|
|
});
|
|
|
|
export const addCardToAccount = (newCard) => {
|
|
AccountStore.update((s) => {
|
|
s.cards = [...s.cards, newCard];
|
|
});
|
|
};
|
|
|
|
export const addTransactionToCard = (newTransaction, cardID) => {
|
|
AccountStore.update((s) => {
|
|
s.cards.find((c, index) =>
|
|
parseInt(c.id) === parseInt(cardID) ? (s.cards[index].transactions = [...s.cards[index].transactions, newTransaction]) : false
|
|
);
|
|
});
|
|
|
|
if (newTransaction.deposit) {
|
|
AccountStore.update((s) => {
|
|
s.cards.find((c, index) =>
|
|
parseInt(c.id) === parseInt(cardID) ? (s.cards[index].balance = parseFloat(s.cards[index].balance) + parseFloat(newTransaction.amount)) : false
|
|
);
|
|
});
|
|
} else {
|
|
AccountStore.update((s) => {
|
|
s.cards.find((c, index) =>
|
|
parseInt(c.id) === parseInt(cardID) ? (s.cards[index].balance = parseFloat(s.cards[index].balance) - parseFloat(newTransaction.amount)) : false
|
|
);
|
|
});
|
|
}
|
|
};
|
|
|
|
// export const removeFromCart = productIndex => {
|
|
|
|
// AccountStore.update(s => { s.product_ids.splice(productIndex, 1) });
|
|
// }
|