Skip to content

Commit bb11553

Browse files
authored
Merge pull request #5576 from TrainLCD/dev
canary
2 parents a2a052b + 264529e commit bb11553

File tree

5 files changed

+50
-33
lines changed

5 files changed

+50
-33
lines changed

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ android {
141141
dimension "environment"
142142
applicationId "me.tinykitten.trainlcd.dev"
143143
versionNameSuffix "-dev"
144-
versionCode 100000316
144+
versionCode 100000317
145145
versionName "10.2.1"
146146
}
147147
prod {
148148
dimension "environment"
149-
versionCode 100000316
149+
versionCode 100000317
150150
versionName "10.2.1"
151151
}
152152
}

app.config.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export default ({ config }: ConfigContext) => ({
5353
},
5454
},
5555
ios: {
56-
buildNumber: '2529',
56+
buildNumber: '2530',
5757
bundleIdentifier:
5858
process.env.EAS_BUILD_PROFILE === 'production'
5959
? 'me.tinykitten.trainlcd'
@@ -70,7 +70,7 @@ export default ({ config }: ConfigContext) => ({
7070
? 'me.tinykitten.trainlcd'
7171
: 'me.tinykitten.trainlcd.dev',
7272
permissions: [],
73-
versionCode: 100000316,
73+
versionCode: 100000317,
7474
},
7575
owner: 'trainlcd',
7676
});
@@ -93,4 +93,5 @@ export default ({ config }: ConfigContext) => ({
9393

9494

9595

96+
9697

ios/TrainLCD.xcodeproj/project.pbxproj

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2419,7 +2419,7 @@
24192419
CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements;
24202420
CODE_SIGN_IDENTITY = "Apple Development";
24212421
CODE_SIGN_STYLE = Automatic;
2422-
CURRENT_PROJECT_VERSION = 2529;
2422+
CURRENT_PROJECT_VERSION = 2530;
24232423
DEAD_CODE_STRIPPING = YES;
24242424
DEVELOPMENT_TEAM = E6R2G33Z36;
24252425
INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist;
@@ -2458,7 +2458,7 @@
24582458
CODE_SIGN_ENTITLEMENTS = ProdTrainLCD.entitlements;
24592459
CODE_SIGN_IDENTITY = "Apple Development";
24602460
CODE_SIGN_STYLE = Automatic;
2461-
CURRENT_PROJECT_VERSION = 2529;
2461+
CURRENT_PROJECT_VERSION = 2530;
24622462
DEVELOPMENT_TEAM = E6R2G33Z36;
24632463
INFOPLIST_FILE = TrainLCD/Schemes/Prod/Info.plist;
24642464
INFOPLIST_KEY_CFBundleDisplayName = TrainLCD;
@@ -2517,7 +2517,7 @@
25172517
CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements;
25182518
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
25192519
COPY_PHASE_STRIP = NO;
2520-
CURRENT_PROJECT_VERSION = 2529;
2520+
CURRENT_PROJECT_VERSION = 2530;
25212521
CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh";
25222522
ENABLE_STRICT_OBJC_MSGSEND = YES;
25232523
ENABLE_TESTABILITY = YES;
@@ -2623,7 +2623,7 @@
26232623
CODE_SIGN_ENTITLEMENTS = TrainLCD/trainlcd.entitlements;
26242624
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
26252625
COPY_PHASE_STRIP = YES;
2626-
CURRENT_PROJECT_VERSION = 2529;
2626+
CURRENT_PROJECT_VERSION = 2530;
26272627
CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh";
26282628
ENABLE_NS_ASSERTIONS = NO;
26292629
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -2702,7 +2702,7 @@
27022702
CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements;
27032703
CODE_SIGN_IDENTITY = "Apple Development";
27042704
CODE_SIGN_STYLE = Automatic;
2705-
CURRENT_PROJECT_VERSION = 2529;
2705+
CURRENT_PROJECT_VERSION = 2530;
27062706
DEAD_CODE_STRIPPING = YES;
27072707
DEVELOPMENT_TEAM = E6R2G33Z36;
27082708
INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist;
@@ -2741,7 +2741,7 @@
27412741
CODE_SIGN_ENTITLEMENTS = CanaryTrainLCD.entitlements;
27422742
CODE_SIGN_IDENTITY = "Apple Development";
27432743
CODE_SIGN_STYLE = Automatic;
2744-
CURRENT_PROJECT_VERSION = 2529;
2744+
CURRENT_PROJECT_VERSION = 2530;
27452745
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
27462746
DEVELOPMENT_TEAM = E6R2G33Z36;
27472747
INFOPLIST_FILE = TrainLCD/Schemes/Dev/Info.plist;
@@ -2952,7 +2952,7 @@
29522952
CODE_SIGN_ENTITLEMENTS = RideSessionActivity/CanaryRideSessionActivity.entitlements;
29532953
CODE_SIGN_IDENTITY = "Apple Development";
29542954
CODE_SIGN_STYLE = Automatic;
2955-
CURRENT_PROJECT_VERSION = 2529;
2955+
CURRENT_PROJECT_VERSION = 2530;
29562956
DEBUG_INFORMATION_FORMAT = dwarf;
29572957
DEVELOPMENT_TEAM = E6R2G33Z36;
29582958
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3003,7 +3003,7 @@
30033003
CODE_SIGN_IDENTITY = "Apple Development";
30043004
CODE_SIGN_STYLE = Automatic;
30053005
COPY_PHASE_STRIP = NO;
3006-
CURRENT_PROJECT_VERSION = 2529;
3006+
CURRENT_PROJECT_VERSION = 2530;
30073007
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
30083008
DEVELOPMENT_TEAM = E6R2G33Z36;
30093009
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3054,7 +3054,7 @@
30543054
CODE_SIGN_ENTITLEMENTS = WatchWidget/ProdWatchWidget.entitlements;
30553055
CODE_SIGN_IDENTITY = "Apple Development";
30563056
CODE_SIGN_STYLE = Automatic;
3057-
CURRENT_PROJECT_VERSION = 2529;
3057+
CURRENT_PROJECT_VERSION = 2530;
30583058
DEBUG_INFORMATION_FORMAT = dwarf;
30593059
DEVELOPMENT_TEAM = E6R2G33Z36;
30603060
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3112,7 +3112,7 @@
31123112
CODE_SIGN_IDENTITY = "Apple Development";
31133113
CODE_SIGN_STYLE = Automatic;
31143114
COPY_PHASE_STRIP = NO;
3115-
CURRENT_PROJECT_VERSION = 2529;
3115+
CURRENT_PROJECT_VERSION = 2530;
31163116
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
31173117
DEVELOPMENT_TEAM = E6R2G33Z36;
31183118
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3163,7 +3163,7 @@
31633163
CODE_SIGN_ENTITLEMENTS = WatchWidget/CanaryWatchWidget.entitlements;
31643164
CODE_SIGN_IDENTITY = "Apple Development";
31653165
CODE_SIGN_STYLE = Automatic;
3166-
CURRENT_PROJECT_VERSION = 2529;
3166+
CURRENT_PROJECT_VERSION = 2530;
31673167
DEBUG_INFORMATION_FORMAT = dwarf;
31683168
DEVELOPMENT_TEAM = E6R2G33Z36;
31693169
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3220,7 +3220,7 @@
32203220
CODE_SIGN_IDENTITY = "Apple Development";
32213221
CODE_SIGN_STYLE = Automatic;
32223222
COPY_PHASE_STRIP = NO;
3223-
CURRENT_PROJECT_VERSION = 2529;
3223+
CURRENT_PROJECT_VERSION = 2530;
32243224
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
32253225
DEVELOPMENT_TEAM = E6R2G33Z36;
32263226
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -3268,7 +3268,7 @@
32683268
CODE_SIGN_ENTITLEMENTS = RideSessionActivity/ProdRideSessionActivity.entitlements;
32693269
CODE_SIGN_IDENTITY = "Apple Development";
32703270
CODE_SIGN_STYLE = Automatic;
3271-
CURRENT_PROJECT_VERSION = 2529;
3271+
CURRENT_PROJECT_VERSION = 2530;
32723272
DEBUG_INFORMATION_FORMAT = dwarf;
32733273
DEVELOPMENT_TEAM = E6R2G33Z36;
32743274
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3319,7 +3319,7 @@
33193319
CODE_SIGN_IDENTITY = "Apple Development";
33203320
CODE_SIGN_STYLE = Automatic;
33213321
COPY_PHASE_STRIP = NO;
3322-
CURRENT_PROJECT_VERSION = 2529;
3322+
CURRENT_PROJECT_VERSION = 2530;
33233323
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
33243324
DEVELOPMENT_TEAM = E6R2G33Z36;
33253325
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -3538,7 +3538,7 @@
35383538
CODE_SIGN_ENTITLEMENTS = ProdAppClip/ProdAppClip.entitlements;
35393539
CODE_SIGN_IDENTITY = "Apple Development";
35403540
CODE_SIGN_STYLE = Automatic;
3541-
CURRENT_PROJECT_VERSION = 2529;
3541+
CURRENT_PROJECT_VERSION = 2530;
35423542
DEBUG_INFORMATION_FORMAT = dwarf;
35433543
DEVELOPMENT_TEAM = E6R2G33Z36;
35443544
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3594,7 +3594,7 @@
35943594
CODE_SIGN_IDENTITY = "Apple Development";
35953595
CODE_SIGN_STYLE = Automatic;
35963596
COPY_PHASE_STRIP = NO;
3597-
CURRENT_PROJECT_VERSION = 2529;
3597+
CURRENT_PROJECT_VERSION = 2530;
35983598
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
35993599
DEVELOPMENT_TEAM = E6R2G33Z36;
36003600
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3644,7 +3644,7 @@
36443644
CODE_SIGN_ENTITLEMENTS = CanaryAppClip/CanaryAppClip.entitlements;
36453645
CODE_SIGN_IDENTITY = "Apple Development";
36463646
CODE_SIGN_STYLE = Automatic;
3647-
CURRENT_PROJECT_VERSION = 2529;
3647+
CURRENT_PROJECT_VERSION = 2530;
36483648
DEBUG_INFORMATION_FORMAT = dwarf;
36493649
DEVELOPMENT_TEAM = E6R2G33Z36;
36503650
ENABLE_USER_SCRIPT_SANDBOXING = NO;
@@ -3702,7 +3702,7 @@
37023702
CODE_SIGN_IDENTITY = "Apple Development";
37033703
CODE_SIGN_STYLE = Automatic;
37043704
COPY_PHASE_STRIP = NO;
3705-
CURRENT_PROJECT_VERSION = 2529;
3705+
CURRENT_PROJECT_VERSION = 2530;
37063706
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
37073707
DEVELOPMENT_TEAM = E6R2G33Z36;
37083708
ENABLE_USER_SCRIPT_SANDBOXING = NO;

src/components/CustomModal.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ type Props = {
1919
onClose?: () => void;
2020
/** 閉じるアニメーションが完了した後に呼ばれるコールバック */
2121
onCloseAnimationEnd?: () => void;
22+
/** 開くアニメーションが完了した後に呼ばれるコールバック */
23+
onShow?: () => void;
2224
dismissOnBackdropPress?: boolean;
2325
backdropStyle?: StyleProp<ViewStyle>;
2426
containerStyle?: StyleProp<ViewStyle>;
@@ -39,6 +41,7 @@ export const CustomModal: React.FC<Props> = ({
3941
children,
4042
onClose,
4143
onCloseAnimationEnd,
44+
onShow,
4245
dismissOnBackdropPress = true,
4346
backdropStyle,
4447
containerStyle,
@@ -49,6 +52,8 @@ export const CustomModal: React.FC<Props> = ({
4952
}) => {
5053
const [isMounted, setIsMounted] = useState(visible);
5154
const opacity = useRef(new Animated.Value(visible ? 1 : 0)).current;
55+
const onShowRef = useRef(onShow);
56+
const onCloseAnimationEndRef = useRef(onCloseAnimationEnd);
5257
const isLEDTheme = useAtomValue(isLEDThemeAtom);
5358
const animatedBackdropStyle = {
5459
opacity,
@@ -65,14 +70,26 @@ export const CustomModal: React.FC<Props> = ({
6570
],
6671
};
6772

73+
useEffect(() => {
74+
onShowRef.current = onShow;
75+
}, [onShow]);
76+
77+
useEffect(() => {
78+
onCloseAnimationEndRef.current = onCloseAnimationEnd;
79+
}, [onCloseAnimationEnd]);
80+
6881
useEffect(() => {
6982
if (visible) {
7083
setIsMounted(true);
7184
Animated.timing(opacity, {
7285
toValue: 1,
7386
duration: animationDuration,
7487
useNativeDriver: true,
75-
}).start();
88+
}).start(({ finished }) => {
89+
if (finished) {
90+
onShowRef.current?.();
91+
}
92+
});
7693
return;
7794
}
7895

@@ -83,10 +100,10 @@ export const CustomModal: React.FC<Props> = ({
83100
}).start(({ finished }) => {
84101
if (finished && !visible) {
85102
setIsMounted(false);
86-
onCloseAnimationEnd?.();
103+
onCloseAnimationEndRef.current?.();
87104
}
88105
});
89-
}, [animationDuration, opacity, visible, onCloseAnimationEnd]);
106+
}, [animationDuration, opacity, visible]);
90107

91108
const handleBackdropPress = () => {
92109
Keyboard.dismiss();

src/components/SavePresetNameModal.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,6 @@ export const SavePresetNameModal: React.FC<Props> = ({
109109
);
110110
inboundOpacity.setValue(1);
111111
outboundOpacity.setValue(1);
112-
113-
// モーダルアニメーション(180ms)とKeyboardAvoidingViewのレイアウト確定を待ってからフォーカスする
114-
if (Platform.OS === 'ios') {
115-
const timer = setTimeout(() => {
116-
textInputRef.current?.focus();
117-
}, 300);
118-
return () => clearTimeout(timer);
119-
}
120112
}
121113
}, [visible, defaultName, directionOptions, inboundOpacity, outboundOpacity]);
122114

@@ -163,6 +155,12 @@ export const SavePresetNameModal: React.FC<Props> = ({
163155
onSubmit(name, selectedDirection);
164156
}, [onSubmit, selectedDirection, hasDirectionOptions]);
165157

158+
const handleShow = useCallback(() => {
159+
if (Platform.OS === 'ios') {
160+
textInputRef.current?.focus();
161+
}
162+
}, []);
163+
166164
const canSubmit =
167165
!isEmpty && (!hasDirectionOptions || selectedDirection !== null);
168166
const textColor = isLEDTheme ? '#fff' : '#000';
@@ -171,6 +169,7 @@ export const SavePresetNameModal: React.FC<Props> = ({
171169
<CustomModal
172170
visible={visible}
173171
onClose={onClose}
172+
onShow={handleShow}
174173
backdropStyle={{ backgroundColor: 'rgba(0,0,0,0.5)' }}
175174
contentContainerStyle={[
176175
styles.contentView,

0 commit comments

Comments
 (0)