one
Version:
One is a React framework for web, iOS, and Android apps.
53 lines (50 loc) • 1.4 kB
JavaScript
import { Contacts as Contacts$1 } from "./unavailable.mjs";
function picker() {
return typeof window === "undefined" ? void 0 : navigator.contacts;
}
let busy = false;
const Contacts = Object.freeze({
...Contacts$1,
pickContact: async () => {
const contacts = picker();
if (!contacts) return Contacts$1.pickContact();
if (busy) throw new Error("Contacts.pickContact: a picker is already open");
busy = true;
try {
const supported = await contacts.getProperties();
const fields = [
"name",
"tel",
"email",
"address"
].filter((field) => supported.includes(field));
const [contact] = await contacts.select(fields, { multiple: false });
if (!contact) return void 0;
return {
identifier: "",
givenName: contact.name?.[0] ?? "",
familyName: "",
phoneNumbers: contact.tel ?? [],
emailAddresses: contact.email ?? [],
postalAddresses: (contact.address ?? []).map((address) => ({
label: "",
street: address.addressLine.join("\n"),
subLocality: "",
city: address.city,
subAdministrativeArea: "",
state: address.region,
postalCode: address.postalCode,
country: "",
isoCountryCode: address.country
}))
};
} catch (error) {
if (error.name === "AbortError") return void 0;
throw error;
} finally {
busy = false;
}
}
});
export { Contacts };
//# sourceMappingURL=index.mjs.map