Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

expo-checkbox

Package Overview
Dependencies
Maintainers
25
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expo-checkbox - npm Package Compare versions

Comparing version 0.0.1-canary-20240305-e60019e to 0.0.1-canary-20240308-6715875

expo-checkbox-0.0.1-canary-20240308-6715875.tgz

4

build/Checkbox.types.d.ts

@@ -1,3 +0,3 @@

import { SyntheticEvent } from 'react';
import { ColorValue, NativeSyntheticEvent, ViewProps } from 'react-native';
import type { SyntheticEvent } from 'react';
import type { ColorValue, NativeSyntheticEvent, ViewProps } from 'react-native';
export type CheckboxEvent = {

@@ -4,0 +4,0 @@ /**

@@ -1,7 +0,3 @@

import React from 'react';
import { CheckboxProps } from './Checkbox.types';
export default class ExpoCheckbox extends React.PureComponent<CheckboxProps> {
private handleChange;
render(): JSX.Element;
}
import type { CheckboxProps } from './Checkbox.types';
export default function ExpoCheckbox({ color, disabled, onChange, onValueChange, style, value, ...other }: CheckboxProps): JSX.Element;
//# sourceMappingURL=ExpoCheckbox.d.ts.map
// Copyright © 2024 650 Industries.
'use client';
import React from 'react';
import { StyleSheet, Image, Pressable, Platform } from 'react-native';
const checkmarkBase64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAACXBIWXMAFxGDABcRgwEFErJzAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAADY1JREFUeJzt3TuOrOtZhuGnFyKxnSMYgGWJKeBgyxFj2EhIZgxMAuQpIO0IOwXJ2hEQMAUSJEIExJDin4D12+vUq+vwvf93uq6wg9KjDvrWW9VVlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAso7j+P3eGwCYzHEcPz2O49+O4/jj3lsAmMT7ePz38f/+U0QAeNMn8ThEBIA3vRIPEQHgdW/EQ0QA+NyN8RARAH7nzniICAAPx0NEAHb2ZDxEBGBHjeIhIgA7aRwPEQHYQVE8RARgZcXxEBGAFV0UDxEBWMnF8RARgBV0ioeIAMysczxEBGBGg8TjNEVEXnoPAOjtOI6fJvl1kh/13vKB/0rys5eXl3/pPeQ1AgJsbdB4nIaOiIAA2xo8HqdhIyIgwJYmicdpyIgICLCdyeJxGi4iAgJsZdJ4nIaKiIAA25g8HqdhIiIgwBYWicdpiIgICLC8xeJx6h4RAQGWtmg8Tl0jIiDAshaPx6lbRAQEWNIm8Th1iYiAAMvZLB6nyyMiIMBSNo3H6dKICAiwjM3jcbosIgICLEE8PnJJRAQEmJ54fFF5RAQEmJp4fFVpRAQEmJZ43KQsIgICTEk87lISEQEBpiMeD2keEQEBpiIeT2kaEQEBpiEeTTSLiIAAUxCPpppE5F2jMQBljuP4Jsn3EY9W/iDJz599EBcIMDSXR4lfJvmzl5eX/33mQQQEGJZ4lGgSj0RAgEGJR4lm8UgEBBiQeJRoGo9EQIDBiEeJ5vFIBAQYiHiUKIlHIiDAIMSjRFk8EgEBBiAeJUrjkQgI0Jl4lCiPRyIgQEfiUeKSeCQCAnQiHiUui0ciIEAH4lHi0ngkAgJcTDxKXB6PRECAC4lHiS7xSAQEuIh4lOgWj0RAgAuIR4mu8UgEBCgmHiW6xyMREKCQeJQYIh6JgABFxKPEMPFIBAQoIB4lhopHIiBAY+JRYrh4JAICNCQeJYaMRyIgQCPiUWLYeCQCAjQgHiWGjkciIMCTxKPE8PFIBAR4gniUmCIeiYAADxKPEtPEIxEQ4AHiUWKqeCQCAtxJPEpMF49EQIA7iEeJKeORCAhwI/EoMW08EgEBbiAeJaaORyIgwBvEo8T08UgEBPgK8SixRDwSAQFeIR4llolHIiDAF4hHiaXikQgI8AnxKLFcPBIBAT4gHiWWjEciIMB74lFi2XgkAgJEPIosHY9EQGB74lFi+XgkAgJbE48SW8QjERDYlniU2CYeiYDAlsSjxFbxSAQEtiMeJbaLRyIgsBXxKLFlPBIBgW2IR4lt45EICGxBPEpsHY9EQGB54lFi+3gkAgJLE48S4vGegMCixKOEeHxAQGBB4lFCPD4hILAY8SghHl8gILAQ8SghHq8QEFiEeJQQj68QEFiAeJQQjzcICExOPEqIxw0EBCYmHiXE40YCApMSjxLicQcBgQmJRwnxuJOAwGTEo4R4PEBAYCLiUUI8HiQgMAnxKCEeTxAQmIB4lBCPJwkIDE48SohHAwICAxOPEuLRiIDAoMSjhHg0JCAwIPEoIR6NCQgMRjxKiEcBAYGBiEcJ8SgiIDAI8SghHoUEBAYgHiXEo5iAQGfiUUI8LiAg0JF4lBCPiwgIdCIeJcTjQgICHYhHCfG4mIDAxcSjhHh0ICBwIfEoIR6dCAhcRDxKiEdHAgIXEI8S4tGZgEAx8SghHgMQECgkHiXEYxACAkXEo4R4DERAoIB4lBCPwQgINCYeJcRjQAICDYlHCfEYlIBAI+JRQjwGJiDQgHiUEI/BCQg8STxKiMcEBASeIB4lxGMSAgIPEo8S4jERAYEHiEcJ8ZiMgMCdxKOEeExIQOAO4lFCPCYlIHAj8SghHhMTELiBeJQQj8kJCLxBPEqIxwIEBL5CPEqIxyLe9R5wheM43h3H8ZfHcfyw9xbmcRzHN0m+j3i09F2Sb8VjDcsH5DiOd0n+JslfJfn+OA5/DHjT+8vj75L8oPeWhfwyyV+8vLz8pvcQ2lj6KawP4vHnH/z4n5P86cvLy//0WcXoPG1VwtNWC1o2IK/E4yQifJF4lBCPRS0ZkDficRIRPiIeJcRjYcsF5MZ4nESEJOJRRDwWt1RA7ozHSUQ2Jx4lxGMDywTkwXicRGRT4lFCPDaxRECejMdJRDYjHiXEYyPTB6RRPE4isgnxKCEem5k6II3jcRKRxYlHCfHY0LQBKYrHSUQWJR4lxGNTUwakOB4nEVmMeJQQj41NF5CL4nESkUWIRwnx2NxUAbk4HicRmZx4lBAP5glIp3icRGRS4lFCPEgySUA6x+MkIpMRjxLiwW8NH5BB4nESkUmIRwnx4CNDB2SweJxEZHDiUUI8+MywARk0HicRGZR4lBAPvmjIgAwej5OIDEY8SogHrxouIJPE4yQigxCPEuLBVw0VkMnicRKRzsSjhHjwpmECMmk8TiLSiXiUEA9uMkRAJo/HSUQuJh4lxIObdQ/IIvE4ichFxKOEeHCXrgFZLB4nESkmHiXEg7t1C8ii8TiJSBHxKCEePKRLQBaPx0lEGhOPEuLBwy4PyCbxOIlII+JRQjx4yqUB2SweJxF5kniUEA+edllANo3HSUQeJB4lxIMmLgnI5vE4icidxKOEeNBMeUDE4yMiciPxKCEeNFUaEPH4IhF5g3iUEA+aKwuIeHyViLxCPEqIByVKAiIeNxGRT4hHCfGgTPOAiMddROQ98SghHpRqGhDxeMj2ERGPEuJBuWYBEY+nbBsR8SghHlyiSUDEo4ntIiIeJcSDyzwdEPFoapuIiEcJ8eBS7xo8xl9HPFr5kyR/fxzHD3sPqXQcxzdJvo94tPRdkm/Fgyu1uEB+nOQfk/zR83N4b9lLxOVRwuVBF61eAxGR9paLiHiUEA+6aflfWCLS3jIREY8S4kFXrd8HIiLtTR8R8SghHnRX8U50EWlv2oiIRwnxYAhVn4UlIu1NFxHxKCEeDKPy03hFpL1pIiIeJcSDoVR/H4iItDd8RMSjhHgwnCu+kVBE2hs2IuJRQjwY0lXfiS4i7Q0XEfEoIR4M65KAJCJSZJiIiEcJ8WBolwUkEZEi3SMiHiXEg+FdGpBERIp0i4h4lBAPpnB5QBIRKXJ5RMSjhHgwjS4BSUSkyGUREY8S4sFUugUkEZEi5RERjxLiwXS6BiQRkSJlERGPEuLBlLoHJBGRIs0jIh4lxINpDRGQRESKNIuIeJQQD6Y2TEASESnydETEo4R4ML2hApKISJGHIyIeJcSDJQwXkEREitwdEfEoIR4sY8iAJCJS5OaIiEcJ8WApwwYkEZEib0ZEPEqIB8sZOiCJiBR5NSLiUUI8WNLwAUlEpMhnERGPEuLBsqYISCIiRX4bEfEoIR4sbZqAJMlxHD9J8g9J/rD3loX8U5JfJPlVkh/0nbKU75L8/OXl5Te9h0CVqQKSuESYgsuDLUwXkEREGJp4sI0pA5KICEMSD7YybUASEWEo4sF2pg5IIiIMQTzY0vQBSUSErsSDbS0RkERE6EI82NoyAUlEhEuJB9tbKiCJiHAJ8YAsGJBERCglHvDekgFJRIQS4gEfWDYgiYjQlHjAJ5YOSCIiNCEe8AXLByQREZ4iHvCKLQKSiAgPEQ/4im0CkogIdxEPeMNWAUlEhJuIB9xgu4AkIsJXiQfcaMuAJCLCF4kH3GHbgCQiwkfEA+60dUASESGJeMBDtg9IIiKbEw94kIC8JyJbEg94goB8QES2Ih7wJAH5hIhsQTygAQH5AhFZmnhAIwLyChFZknhAQwLyFSKyFPGAxgTkDSKyBPGAAgJyAxGZmnhAEQG5kYhMSTygkIDcQUSmIh5QTEDuJCJTEA+4gIA8QESGJh5wEQF5kIgMSTzgQgLyBBEZinjAxQTkSSIyBPGADgSkARHpSjygEwFpRES6EA/oSEAaEpFLiQd0JiCNicglxAMGICAFRKSUeMAg3vUesKKXl5d/TfKzJP/Re8tivkvyrXjAGFwghVwiTbk8YDACUkxEmhAPGJCAXEBEniIeMCgBuYiIPEQ8YGACciERuYt4wOAE5GIichPxgAkISAci8lXiAZMQkE5E5IvEAyYiIB2JyEfEAyYjIJ2JSBLxgCkJyAA2j4h4wKQEZBCbRkQ8YGICMpDNIiIeMDkBGcwmEREPWICADGjxiIgHLEJABrVoRMQDFiIgA1ssIuIBixGQwS0SEfGABQnIBCaPiHjAogRkEpNGRDxgYQIykckiIh6wOAGZzCQREQ+AER3H8ePjOP79GNPfHsfxe71/RwC84hgzIuIBMINjrIiIB8BMjjEiIh4AM+ocEfEAmFmniIgHwAoujoh4AKzkooiIB8CKiiMiHgArK4qIeADsoHFExANgJ40iIh4AO3oyIuIBsLMHIyIeANwdEfEA4HdujIh4APC5NyIiHgC87pWIiAcAb/skIuIBwO2O4/jJcRy/OI7jXe8tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA5/4PiZTk2kr08uAAAAAASUVORK5CYII=';
// TODO: Class components are not supported with React Server Components.
export default class ExpoCheckbox extends React.PureComponent {
handleChange = () => {
this.props.onValueChange?.(!this.props.value);
export default function ExpoCheckbox({ color, disabled, onChange, onValueChange, style, value, ...other }) {
const handleChange = () => {
onValueChange?.(!value);
};
render() {
const { color, disabled, onChange, onValueChange, style, value, ...other } = this.props;
return (<Pressable {...other} disabled={disabled}
// Announces "checked" status and "checkbox" as the focused element
accessibilityRole="checkbox" accessibilityState={{ disabled, checked: value }} style={[
styles.root,
style,
value && styles.checked,
!!color && { backgroundColor: value ? color : undefined, borderColor: color },
disabled && styles.disabled,
value && disabled && styles.checkedAndDisabled,
]} onPress={this.handleChange}>
{value && (<Image source={{
uri: checkmarkBase64,
}} style={StyleSheet.absoluteFill}/>)}
</Pressable>);
}
return (<Pressable {...other} disabled={disabled}
// Announces "checked" status and "checkbox" as the focused element
accessibilityRole="checkbox" accessibilityState={{ disabled, checked: value }} style={[
styles.root,
style,
value && styles.checked,
!!color && { backgroundColor: value ? color : undefined, borderColor: color },
disabled && styles.disabled,
value && disabled && styles.checkedAndDisabled,
]} onPress={handleChange}>
{value && (<Image source={{
uri: checkmarkBase64,
}} style={StyleSheet.absoluteFill}/>)}
</Pressable>);
}

@@ -29,0 +24,0 @@ const defaultEnabledColor = Platform.select({

@@ -12,8 +12,12 @@ /**

import React from 'react';
import { CheckboxProps } from './Checkbox.types';
export default class ExpoCheckbox extends React.PureComponent<CheckboxProps> {
private handleChange;
render(): JSX.Element;
}
import type { CheckboxEvent } from './Checkbox.types';
declare const ExpoCheckbox: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
value?: boolean | undefined;
disabled?: boolean | undefined;
color?: import("react-native").ColorValue | undefined;
onChange?: ((event: import("react-native").NativeSyntheticEvent<CheckboxEvent> | React.SyntheticEvent<HTMLInputElement, CheckboxEvent>) => void) | undefined;
onValueChange?: ((value: boolean) => void) | undefined;
} & React.RefAttributes<unknown>>;
export default ExpoCheckbox;
export declare const name = "ExpoCheckbox";
//# sourceMappingURL=ExpoCheckbox.web.d.ts.map

@@ -11,39 +11,34 @@ /**

*/
'use client';
import React from 'react';
// @ts-ignore
import { StyleSheet, View, unstable_createElement as createElement } from 'react-native';
// TODO: Class components are not supported with React Server Components.
export default class ExpoCheckbox extends React.PureComponent {
handleChange = (event) => {
import { StyleSheet, View, unstable_createElement as createElement } from 'react-native-web';
const ExpoCheckbox = React.forwardRef(({ color, disabled, onChange, onValueChange, style, value, ...other }, ref) => {
const handleChange = (event) => {
const value = event.nativeEvent.target.checked;
event.nativeEvent.value = value;
this.props.onChange?.(event);
this.props.onValueChange?.(value);
onChange?.(event);
onValueChange?.(value);
};
render() {
const { color, disabled, onChange, onValueChange, style, value, ...other } = this.props;
const fakeControl = (<View style={[
styles.fakeControl,
value && styles.fakeControlChecked,
// custom color
!!color && { backgroundColor: value ? color : undefined, borderColor: color },
disabled && styles.fakeControlDisabled,
value && disabled && styles.fakeControlCheckedAndDisabled,
]}/>);
const nativeControl = createElement('input', {
accessibilityChecked: value,
accessibilityDisabled: disabled,
checked: value,
disabled,
onChange: this.handleChange,
style: [styles.nativeControl, styles.cursorInherit],
type: 'checkbox',
});
return (<View {...other} style={[styles.root, style, disabled && styles.cursorDefault]}>
const fakeControl = (<View style={[
styles.fakeControl,
value && styles.fakeControlChecked,
// custom color
!!color && { backgroundColor: value ? color : undefined, borderColor: color },
disabled && styles.fakeControlDisabled,
value && disabled && styles.fakeControlCheckedAndDisabled,
]}/>);
const nativeControl = createElement('input', {
'aria-checked': value,
'aria-disabled': disabled,
checked: value,
disabled,
onChange: handleChange,
style: [styles.nativeControl, styles.cursorInherit],
type: 'checkbox',
});
return (<View ref={ref} {...other} style={[styles.root, style, disabled && styles.cursorDefault]}>
{nativeControl}
{fakeControl}
</View>);
}
}
});
export default ExpoCheckbox;
const styles = StyleSheet.create({

@@ -50,0 +45,0 @@ root: {

@@ -15,2 +15,4 @@ # Changelog

- Convert to function components and remove "use client" directives. ([#27438](https://github.com/expo/expo/pull/27438) by [@EvanBacon](https://github.com/EvanBacon))
## 2.7.0 — 2023-11-14

@@ -17,0 +19,0 @@

{
"name": "expo-checkbox",
"version": "0.0.1-canary-20240305-e60019e",
"version": "0.0.1-canary-20240308-6715875",
"description": "Basic checkbox for iOS, Android, and web",

@@ -36,3 +36,3 @@ "main": "build/Checkbox.js",

"@testing-library/react-native": "^11.3.0",
"expo-module-scripts": "0.0.1-canary-20240305-e60019e"
"expo-module-scripts": "0.0.1-canary-20240308-6715875"
},

@@ -42,3 +42,3 @@ "jest": {

},
"gitHead": "e60019e11a6d46e330b57b18c64468a58d589875"
"gitHead": "67158757cf78be8094fe6b7461e8523157f1f615"
}

@@ -1,3 +0,3 @@

import { SyntheticEvent } from 'react';
import { ColorValue, NativeSyntheticEvent, ViewProps } from 'react-native';
import type { SyntheticEvent } from 'react';
import type { ColorValue, NativeSyntheticEvent, ViewProps } from 'react-native';

@@ -4,0 +4,0 @@ export type CheckboxEvent = {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc