react-native-contribution-grid
Version:
Customizable GitHub-like contribution grid for React Native
53 lines (52 loc) • 1.66 kB
TypeScript
import React from 'react';
import { ViewStyle, TextStyle } from 'react-native';
export type ContributionEntry = {
completedAt: Date | string;
};
export type ContributionGridProps = {
data: ContributionEntry[];
onDatePress?: (date: string) => void;
selectedDate?: string;
containerStyle?: ViewStyle;
headerTextStyle?: TextStyle;
labelTextStyle?: TextStyle;
monthLabelTextStyle?: TextStyle;
dayLabelTextStyle?: TextStyle;
headerButtonStyle?: ViewStyle;
headerButtonTextStyle?: TextStyle;
squareSize?: number;
squareSpacing?: number;
columnMinWidth?: number;
showHeader?: boolean;
showLegend?: boolean;
levelThresholds?: [number, number, number, number];
levelColors?: {
padding: string;
empty: string;
level1: string;
level2: string;
level3: string;
level4: string;
selectedBorder?: string;
};
renderHeader?: (params: {
year: number;
goPrev: () => void;
goNext: () => void;
isNextDisabled: boolean;
}) => React.ReactNode;
renderLegend?: (getColorForLevel: (level: number) => string) => React.ReactNode;
renderSquare?: (params: {
date: string;
level: number;
count: number;
isSelected: boolean;
size: number;
spacing: number;
onPress?: () => void;
}) => React.ReactNode;
renderMonthLabel?: (label: string, index: number) => React.ReactNode;
renderDayLabel?: (label: string, index: number) => React.ReactNode;
};
export declare const ContributionGrid: React.FC<ContributionGridProps>;
export default ContributionGrid;