Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@swm/add draggable list #7

Closed
wants to merge 49 commits into from
Closed
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
337c298
chore: initial commit
kosmydel Aug 23, 2023
c905da8
feat: add native draggable list
kosmydel Aug 23, 2023
a2e7397
feat: setup react-beautiful-dnd for web draggable
kosmydel Aug 23, 2023
ff3f44b
feat: pass data to the component
kosmydel Aug 23, 2023
9fe1f6a
feat: cleanup
kosmydel Aug 23, 2023
a493e2a
feat: render items on web
kosmydel Aug 23, 2023
e3345c0
feat: add onDragEnd callback, move setItems to the app layer
kosmydel Aug 23, 2023
583d274
feat: add custom scale decorator
kosmydel Aug 23, 2023
892d577
feat: reformat, add decorator types
kosmydel Aug 23, 2023
df90465
feat: add onDragBegin prop
kosmydel Aug 23, 2023
79d651f
feat: use spread operator for native props
kosmydel Aug 23, 2023
ba20d8b
feat: use better colors
kosmydel Aug 23, 2023
a7d57ef
feat: better styling
kosmydel Aug 23, 2023
1d3194c
feat: add logging events
kosmydel Aug 23, 2023
ec6cfc1
feat: small refactor
kosmydel Aug 23, 2023
eb5b9d1
feat: refactor
kosmydel Aug 23, 2023
3732223
feat: add haptics
kosmydel Aug 23, 2023
8a4f0db
feat: add onPlaceholderIndexChange to the web
kosmydel Aug 23, 2023
a408740
refactor: rename the library
kosmydel Aug 24, 2023
43b7e57
feat: better typing, remove haptics
kosmydel Aug 24, 2023
fb58d96
refactor: move utilities to a new file
kosmydel Aug 24, 2023
4ff0751
docs: update readme
kosmydel Aug 24, 2023
30b1156
feat: add more decorators
kosmydel Aug 24, 2023
5693882
refactor: export custom RenderItemParams
kosmydel Aug 24, 2023
161e6cf
fix: type
kosmydel Aug 24, 2023
6be3991
refactor: make draggable list default export
kosmydel Aug 24, 2023
b0ac9e7
refactor: naming in decorators
kosmydel Aug 24, 2023
0244f7a
refactor: make web as default implementation
kosmydel Aug 24, 2023
0f0d874
fix: imports
kosmydel Aug 24, 2023
590859d
refactor: calling functions
kosmydel Aug 24, 2023
24e0bf4
fix: typing
kosmydel Aug 24, 2023
16e7373
chore: remove yarn
kosmydel Aug 24, 2023
a72653a
docs: improve readme, add prettier configs
kosmydel Aug 24, 2023
19e0b88
Merge remote-tracking branch 'kosmydel/main' into @swm/add-draggable-…
kosmydel Aug 24, 2023
fc993d6
refactor: cleanup & fix dependencies
kosmydel Aug 24, 2023
4bb2681
fix: dependencies
kosmydel Aug 24, 2023
d3ceabb
refactor: review
kosmydel Aug 24, 2023
4c9bc5b
fix: allow more versions of dependencies
kosmydel Aug 24, 2023
1078a14
fix: allow more versions of dependencies
kosmydel Aug 24, 2023
d998e85
chore: run lint, rename props
kosmydel Aug 24, 2023
96ccafd
fix: import React
kosmydel Aug 25, 2023
fb105b6
feat: use keyExtractor in the web
kosmydel Aug 25, 2023
bb3aa48
feat: use lodash
kosmydel Aug 25, 2023
b1606af
feat: add renderClone prop on the web
kosmydel Aug 25, 2023
68fdcbe
fix: change required react-native-web version
kosmydel Aug 28, 2023
9143ae8
feat: add useDraggableInPortal hook
kosmydel Aug 28, 2023
6989db5
feat: add ScrollView to web to match native behavior
kosmydel Aug 28, 2023
87a44c5
refactor: address feedback, cleanup
kosmydel Aug 28, 2023
a9afeb1
refactor: run yarn prettier
kosmydel Aug 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]

indent_style = space
indent_size = 2

end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.pbxproj -text
# specific for windows script files
*.bat text eol=crlf
28 changes: 28 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Setup
description: Setup Node.js and install dependencies

runs:
using: composite
steps:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: .nvmrc

- name: Cache dependencies
id: yarn-cache
uses: actions/cache@v3
with:
path: |
**/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
${{ runner.os }}-yarn-

- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: |
yarn install --cwd example --frozen-lockfile
yarn install --frozen-lockfile
shell: bash
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Lint files
run: yarn lint

- name: Typecheck files
run: yarn typecheck

test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Run unit tests
run: yarn test --maxWorkers=2 --coverage

build-library:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Build package
run: yarn prepack

build-web:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Build example for Web
run: |
yarn example expo export:web
65 changes: 62 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,74 @@
# OSX
#
.DS_Store

# XDE
.expo/

# VSCode
.vscode/
jsconfig.json

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IJ
#
.classpath
.cxx
.gradle
.idea
.project
.settings
local.properties
android.iml

# Cocoapods
#
example/ios/Pods

# Ruby
example/vendor/

# node.js
#
node_modules/
npm-debug.log

# BUCK
buck-out/
\.buckd/
android/app/libs
android/keystores/debug.keystore

# Expo
.expo/

# Turborepo
.turbo/

# generated by bob
lib/

# NPM file created by GitHub actions
.npmrc

# IDEs
.idea

# Decrypted private key we do not want to commit
.github/OSBotify-private-key.asc
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v18
9 changes: 9 additions & 0 deletions .prettierrrc.js
kosmydel marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
tabWidth: 4,
singleQuote: true,
trailingComma: 'all',
bracketSpacing: false,
arrowParens: 'always',
printWidth: 190,
singleAttributePerLine: true,
};
1 change: 1 addition & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
3 changes: 3 additions & 0 deletions .yarnrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Override Yarn command so we can automatically setup the repo on running `yarn`

yarn-path "scripts/bootstrap.js"
133 changes: 133 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@

# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
Loading
Loading