Home Reference Source

src/contacts/FavoriteContact.js

import {
	getFavoriteContacts,
	updateFavoriteContacts,
} from './ContactCache';

export class FavoriteContact {
	constructor() {
		this._favoriteContacts = new Set(getFavoriteContacts() || []);
	}

	saveFavorite(contactDeviceId) {
		this._favoriteContacts.add(contactDeviceId);
		updateFavoriteContacts(Array.from(this._favoriteContacts));
	}

	removeFavorite(contactDeviceId) {
		if (this._favoriteContacts.delete(contactDeviceId)) {
			updateFavoriteContacts(Array.from(this._favoriteContacts));
		}
	}

	getFavoriteContacts() {
		return this._favoriteContacts;
	}

	updateContactsWithFavoriteFlag(contacts) {
		return contacts.map((contact) => {
			contact.favorite = this.getFavoriteContacts().has(contact.contactDeviceId);
			return contact;
		});
	}
}