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

Add DraggableList component #26307

Conversation

kosmydel
Copy link
Contributor

@kosmydel kosmydel commented Aug 30, 2023

Details

Implement a DraggableList for waypoints.

Fixed Issues

$ #22716
PROPOSAL: N/A

Tests

  • Check that draggable list works on all platforms
    • Reorder the waypoints
    • Add more waypoints
    • Change window size
  • Verify that no errors appear in the JS console

Offline tests

N/A

QA Steps

  1. Click on '+' button
  2. Click on Request money
  3. Choose 'Distance' option
  4. Add Start and Finish waypoints
  5. Add more waypoints
  6. Reorder them with long press
  7. Changes should be displayed on the map
  8. Save the distance money request.
  9. Edit the distance request.

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
web.mov
Mobile Web - Chrome
android-web.mov
Mobile Web - Safari
ios-web.mov
Desktop
desktop.mov
iOS
ios.mov
Android
android.mov

@hayata-suenaga hayata-suenaga marked this pull request as ready for review August 30, 2023 17:22
@hayata-suenaga hayata-suenaga requested a review from a team as a code owner August 30, 2023 17:22
@melvin-bot melvin-bot bot requested review from Li357 and removed request for a team August 30, 2023 17:23
@melvin-bot
Copy link

melvin-bot bot commented Aug 30, 2023

@Li357 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@hayata-suenaga
Copy link
Contributor

@kosmydel please let me know the ETA for this issue 🙇

@kosmydel
Copy link
Contributor Author

@kosmydel please let me know the ETA for this issue 🙇

Hey, @blazejkustra took this over as I'm participating in internal workshops and have limited availability. It should be ready for a review today.

@kosmydel
Copy link
Contributor Author

kosmydel commented Aug 31, 2023

@situchan @Li357
Hey, we are ready for the review with this PR.

Thanks @blazejkustra for the support!

@Li357
Copy link
Contributor

Li357 commented Aug 31, 2023

@situchan Are you able to review this soon?

Copy link
Contributor

@fabioh8010 fabioh8010 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments regarding the TS part.

src/components/DraggableList/types.tsx Outdated Show resolved Hide resolved
src/components/DraggableList/useDraggableInPortal.tsx Outdated Show resolved Hide resolved
src/components/DraggableList/index.tsx Show resolved Hide resolved
src/components/DraggableList/index.native.tsx Show resolved Hide resolved
Copy link
Contributor

@situchan situchan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good. +1 on @fabioh8010's feedback

Improvement suggestions: (not blocker but can be follow-up)

BUG1: (web) hover glitch after drop

bug1.mov

BUG2: [iOS] too much padding (I think this is blocker so should be fixed here)

bug2

BUG3: Inconsistent hover color between platforms
i.e. on web, there's highlight color while dragging but not on native

bug3.mov

BUG4: [mSafari] sometimes full page is selected (blue highlight)

bug4.mov

BUG5: [mChrome] long press threshold - while scrolling, sometimes drag started though I didn't long-press

bug5.mov

src/components/DraggableList/index.tsx Outdated Show resolved Hide resolved
Copy link
Contributor

@fabioh8010 fabioh8010 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second review

patches/react-beautiful-dnd+13.1.1.patch Show resolved Hide resolved
src/components/DraggableList/types.tsx Outdated Show resolved Hide resolved
@hayata-suenaga hayata-suenaga changed the title Add DraggableList component [HOLD] Add DraggableList component Aug 31, 2023
@github-actions github-actions bot added the DeployBlockerCash This issue or pull request should block deployment label Oct 4, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Oct 4, 2023

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1201.644 ms → 1304.710 ms (+103.065 ms, +8.6%) 🔴
App start runJsBundle 831.516 ms → 926.194 ms (+94.677 ms, +11.4%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1201.644 ms
Stdev: 26.522 ms (2.2%)
Runs: 1142.1501100007445 1146.5080849993974 1172.6305989995599 1177.3540589995682 1178.7244930006564 1185.0998429991305 1186.9549679998308 1186.9772880002856 1187.4248959999532 1188.149150999263 1190.0800449997187 1195.6119470000267 1195.77276599966 1197.902594000101 1198.6222089994699 1201.594410000369 1205.0518249999732 1205.5452789999545 1207.390190999955 1209.1021839994937 1210.2422870006412 1213.787675999105 1218.059736000374 1220.745014000684 1240.4596909992397 1242.9178679995239 1244.6120619997382 1246.6840989999473 1251.5327909998596

Current
Mean: 1304.710 ms
Stdev: 41.846 ms (3.2%)
Runs: 1202.3608689997345 1238.7677330002189 1265.6029959991574 1267.148072000593 1272.1453210003674 1272.603748999536 1272.9422590006143 1282.4806869998574 1285.4567799996585 1285.4671679995954 1286.7457180004567 1287.6080939993262 1290.4628819990903 1295.5332290008664 1296.436494000256 1296.8700879998505 1301.2679919991642 1302.447716999799 1303.0320309996605 1303.3057320006192 1304.8977419994771 1311.4984099995345 1315.0202360004187 1316.113804999739 1356.550556000322 1363.3783860001713 1363.436281999573 1364.7699439991266 1367.6083519998938 1378.2288400009274 1395.8146170005202
App start runJsBundle Baseline
Mean: 831.516 ms
Stdev: 28.850 ms (3.5%)
Runs: 756 786 791 799 807 810 812 813 813 814 819 819 824 826 829 830 836 840 840 840 840 847 847 851 852 857 864 868 875 882 890

Current
Mean: 926.194 ms
Stdev: 34.033 ms (3.7%)
Runs: 880 887 892 892 894 896 896 897 897 901 910 912 915 918 919 919 922 922 925 927 928 932 937 938 947 948 969 986 997 1002 1007

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 618.367 ms → 631.772 ms (+13.405 ms, +2.2%)
App start nativeLaunch 21.613 ms → 22.032 ms (+0.419 ms, +1.9%)
App start regularAppStart 0.018 ms → 0.016 ms (-0.002 ms, -13.0%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 618.367 ms
Stdev: 24.429 ms (4.0%)
Runs: 592.4163409993052 592.7993170004338 593.39070700109 595.7371830008924 597.1847329996526 597.9292810000479 598.6971029993147 601.3384600002319 601.9311519991606 602.381877001375 602.5358889997005 604.0548100005835 605.5583500005305 611.4983729999512 611.5078539997339 611.8720300011337 612.3209639992565 612.6078290008008 614.2407639995217 616.5677489992231 619.0422779992223 619.2822270002216 623.6312669999897 623.7319750003517 634.9048260003328 642.8041990008205 648.8156739994884 654.4001070000231 669.3684899993241 669.5831709988415 687.2425950001925

Current
Mean: 631.772 ms
Stdev: 23.954 ms (3.8%)
Runs: 605.9536540005356 607.8922930005938 609.2804770004004 609.6105150002986 610.3321940004826 610.6601969990879 612.4621990006417 613.9519049990922 614.7882489990443 617.3642580006272 617.9517010003328 618.0053710006177 621.2078860010952 621.3398850001395 621.7863369993865 624.7686369996518 626.6164139993489 627.0504960007966 629.6137700006366 629.9647220000625 630.383625999093 631.003987999633 636.4079180005938 636.5833750013262 637.4160159993917 641.6040040012449 654.4927979987115 655.3466389998794 670.3229990005493 686.6515309996903 692.1743979994208 693.7044679988176
App start nativeLaunch Baseline
Mean: 21.613 ms
Stdev: 1.679 ms (7.8%)
Runs: 19 19 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 23 24 24 24 24 24 25 25

Current
Mean: 22.032 ms
Stdev: 2.682 ms (12.2%)
Runs: 19 19 19 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 22 22 22 22 23 23 24 24 24 27 28 28 29
App start regularAppStart Baseline
Mean: 0.018 ms
Stdev: 0.001 ms (8.0%)
Runs: 0.014079000800848007 0.015461999922990799 0.01643799990415573 0.016561001539230347 0.016641998663544655 0.016683001071214676 0.016805000603199005 0.016805000603199005 0.016846001148223877 0.017211999744176865 0.0172520000487566 0.017333999276161194 0.0174150001257658 0.017497001215815544 0.01798499934375286 0.018026001751422882 0.018066000193357468 0.018067000433802605 0.018147999420762062 0.018474001437425613 0.0186769999563694 0.018758000805974007 0.019001999869942665 0.019003000110387802 0.019042998552322388 0.01908399909734726 0.019164999946951866 0.019164999946951866 0.019206000491976738 0.020100999623537064 0.0204670000821352 0.02115900069475174

Current
Mean: 0.016 ms
Stdev: 0.001 ms (6.0%)
Runs: 0.01342800073325634 0.014364000409841537 0.014485999941825867 0.014527000486850739 0.014689000323414803 0.014851998537778854 0.015014000236988068 0.015014000236988068 0.01505500078201294 0.015095999464392662 0.015178000554442406 0.01521800085902214 0.015258999541401863 0.015380999073386192 0.015422001481056213 0.015502000227570534 0.015665000304579735 0.015787998214364052 0.0157880000770092 0.015869000926613808 0.015949999913573265 0.015991000458598137 0.01603199914097786 0.016114000231027603 0.01631700061261654 0.0167239997535944 0.01684500090777874 0.016885999590158463 0.016927000135183334 0.017212001606822014 0.017945000901818275

@github-actions
Copy link
Contributor

github-actions bot commented Oct 4, 2023

@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker.

@OSBotify
Copy link
Contributor

OSBotify commented Oct 5, 2023

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.78-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@hayata-suenaga
Copy link
Contributor

@mountiny mountiny removed the DeployBlockerCash This issue or pull request should block deployment label Oct 5, 2023
isActive={isActive}
getIndex={getIndex}
onPress={navigateToWaypointEditPage}
disabled={isLoadingRoute}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@blazejkustra Sorry. I have a minor question. Please help answer when you have a chance. Why do we need this logic?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DylanDylann This line disables the items of draggable list when the route is reloading, so that it is impossible to reorder the list while the map is reloading. Without it, there is a possible race condition if you change the order of items quickly while the map is still loading the route.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks @blazejkustra

@OSBotify
Copy link
Contributor

OSBotify commented Oct 5, 2023

✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 5, 2023

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1194.037 ms → 1265.540 ms (+71.503 ms, +6.0%) 🔴
App start runJsBundle 825.125 ms → 878.656 ms (+53.531 ms, +6.5%) 🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1194.037 ms
Stdev: 51.559 ms (4.3%)
Runs: 1063.7882340000942 1113.5092759998515 1136.8042829995975 1148.2519190004095 1148.43749700021 1150.4152060002089 1155.2577039999887 1157.7051459997892 1158.069569000043 1158.7725179996341 1159.7660320000723 1165.7903460003436 1167.9866209998727 1170.8480399996042 1183.6694750003517 1185.893090000376 1186.892943000421 1200.1579090002924 1202.1593620004132 1202.9856009995565 1206.2072780001909 1214.9944609999657 1239.365001999773 1242.3341800002381 1243.5410449998453 1247.0846669999883 1252.9480750001967 1254.1327999997884 1259.4082819996402 1263.578785999678 1266.7305760001764 1301.6927829999477

Current
Mean: 1265.540 ms
Stdev: 49.706 ms (3.9%)
Runs: 1172.2708890000358 1173.7439500000328 1205.0588180003688 1206.0910489996895 1210.9983649998903 1219.2628380004317 1226.3893780000508 1227.9668439999223 1232.990346999839 1235.2472109999508 1241.3252330003306 1241.8593429997563 1243.011974000372 1244.707386000082 1264.9924569996074 1265.6339560002089 1271.8108670003712 1275.1070029996336 1281.2872299998999 1282.8061849996448 1284.7690799999982 1285.0371359996498 1287.3227970004082 1288.2819649996236 1294.0864970004186 1297.224929000251 1300.8187020001933 1302.903144000098 1333.06355800014 1354.0316800000146 1372.2448490001261 1374.9218939999118
App start runJsBundle Baseline
Mean: 825.125 ms
Stdev: 42.822 ms (5.2%)
Runs: 724 768 774 787 789 789 790 792 795 805 805 809 810 811 811 812 812 814 821 834 839 844 853 855 858 865 866 873 882 884 897 936

Current
Mean: 878.656 ms
Stdev: 34.205 ms (3.9%)
Runs: 813 821 825 826 844 850 850 855 855 858 866 866 867 870 871 873 878 880 886 890 891 897 897 900 903 907 917 923 924 927 939 948

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 615.659 ms → 627.055 ms (+11.396 ms, +1.9%)
App start nativeLaunch 21.281 ms → 21.871 ms (+0.590 ms, +2.8%)
App start regularAppStart 0.015 ms → 0.015 ms (+0.000 ms, +1.4%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 615.659 ms
Stdev: 29.069 ms (4.7%)
Runs: 570.7515059998259 583.3149410001934 588.1631680000573 588.9749759994447 589.4144700001925 589.463175999932 590.9305020002648 592.7525230003521 597.2095550000668 598.2310389997438 598.7869060002267 601.912476000376 605.2179770004004 605.644369000569 605.9645189996809 606.08728000056 606.8984369998798 608.3875330006704 613.9774179998785 614.001058999449 614.359253000468 615.3042810000479 616.0050869993865 617.2557779997587 645.1205649999902 645.6626800000668 646.3014730000868 647.284953000024 656.8922530002892 671.5549729997292 672.3676350004971 696.8831790005788

Current
Mean: 627.055 ms
Stdev: 21.286 ms (3.4%)
Runs: 596.9278570003808 599.0332029992715 604.8117270004004 606.4009199999273 607.1045329999179 608.5412600003183 609.9623210001737 613.634683999233 613.8395189996809 615.7052819998935 615.7111010001972 616.7185060000047 617.6113280002028 618.2779950005934 620.6107179997489 621.3112389994785 621.8922119997442 621.9316810006276 623.1999520007521 624.8628749996424 626.0611169999465 628.630900000222 631.660605000332 635.9419360002503 637.631184999831 639.7611090000719 644.9069420006126 652.9933669995517 665.9905610000715 666.5030929995701 675.1759850000963 682.400634999387
App start nativeLaunch Baseline
Mean: 21.281 ms
Stdev: 1.891 ms (8.9%)
Runs: 19 19 19 19 19 19 19 20 20 20 20 20 20 20 21 21 21 21 22 22 22 22 22 23 23 23 23 24 24 24 24 26

Current
Mean: 21.871 ms
Stdev: 2.059 ms (9.4%)
Runs: 19 19 20 20 20 20 20 20 20 20 21 21 21 21 22 22 22 22 22 22 22 22 22 23 23 24 25 25 25 25 28
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (7.3%)
Runs: 0.012980000115931034 0.013184000737965107 0.013264999724924564 0.013388000428676605 0.013469000346958637 0.013590000569820404 0.013672000728547573 0.01375299971550703 0.013793999329209328 0.014119000174105167 0.014201000332832336 0.014404000714421272 0.014526000246405602 0.014526000246405602 0.014526999555528164 0.014607999473810196 0.0147299999371171 0.014810999855399132 0.014851999469101429 0.0148930000141263 0.015381000004708767 0.015542999841272831 0.015584000386297703 0.015584999695420265 0.015625 0.0157880000770092 0.0157880000770092 0.016112999990582466 0.016600999981164932 0.016601000912487507 0.0170889999717474

Current
Mean: 0.015 ms
Stdev: 0.001 ms (6.9%)
Runs: 0.013346999883651733 0.01342800073325634 0.013671999797224998 0.013753000646829605 0.013794000260531902 0.013875000178813934 0.014200999401509762 0.014322999864816666 0.0143630001693964 0.014405000023543835 0.01444500032812357 0.014485999941825867 0.014525999315083027 0.01460800040513277 0.014689000323414803 0.014689000323414803 0.014973999932408333 0.015137000009417534 0.015258999541401863 0.015502999536693096 0.015543999150395393 0.015584000386297703 0.015910000540316105 0.015991000458598137 0.016276000067591667 0.0163569999858737 0.016357000917196274 0.017049000598490238 0.0170499999076128

@github-actions
Copy link
Contributor

github-actions bot commented Oct 5, 2023

@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker.

transaction: {
key: ({transactionID}) => `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID || 0}`,
},
mapboxAccessToken: {
Copy link
Contributor

@tgolen tgolen Oct 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this may have been missed during the refactoring, but this prop is no longer accessed in this component.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, that can be removed as unused. Moved to DistanceRequestFooter

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right. I will prepare a PR for that tomorrow.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added this change to this PR.

cc @tgolen, @situchan, @blazejkustra

@OSBotify
Copy link
Contributor

OSBotify commented Oct 6, 2023

🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.78-4 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Oct 6, 2023

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.79-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Oct 9, 2023

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 failure ❌
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Oct 9, 2023

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 cancelled 🔪
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Oct 9, 2023

🚀 Deployed to production by https://github.com/jasperhuangg in version: 1.3.79-5 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

}
}, [stop]);
- var bindCapturingEvents = useMemoOne.useCallback(function bindCapturingEvents() {
+ var bindCapturingEvents = useMemoOne.useCallback(function bindCapturingEvents(target) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @kosmydel . I am working on "Create a fork for react-beautiful-dnd and remove patch" and I need to define a type for target param. So what should it be? Expensify/react-beautiful-dnd#1 (comment)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @DylanDylann, thanks for the question!

I think it will be HTMLElement.

Here is the original PR, with this change. And it is already typed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks @kosmydel

Comment on lines +34 to +35
waypoint0: null,
waypoint1: null,
Copy link
Collaborator

@Santhosh-Sellavel Santhosh-Sellavel Oct 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change has caused a regression explained here
#29748 (comment)


setOptimisticWaypoints(newWaypoints);
// eslint-disable-next-line rulesdir/no-thenable-actions-in-views
Transaction.updateWaypoints(transactionID, newWaypoints).then(() => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like dragging the waypoint to empty waypoint duplicates it which caused #33919

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DeployBlockerCash This issue or pull request should block deployment
Projects
None yet
Development

Successfully merging this pull request may close these issues.