u/Beneficial-Mind286

▲ 29 r/london

Anyone in recovery in London?

Hey guys, I'm in recovery just over 2 years from drugs and alcohol. I recently moved from Ireland to London (last week) and Im feeling quite out of place.. I don't seem to fit in anywhere and always feel like more of an outsider.. I struggle to connect with people and now that the novelty of moving has worn off a bit, I feel the same as I was in Ireland. Im unemployed at the moment but hoping to find work. I've tried dating apps but it never works.. Im not always feeling good everyday because life is not always perfect.. but I still try to stay positive. Im quiet and introverted and I would love to find people I can connect with that understand me.. I haven't laughed in ages and I hardly have any fun anymore.. I feel like if I had more human connection it would make me feel a lot better as I have a tendency to isolate. If there is anyone out there in recovery I would really appreciate connecting.. Thanks.

reddit.com
u/Beneficial-Mind286 — 4 days ago
▲ 1 r/expo+1 crossposts

Hi guys, I'm building out a "create post" screen for my social media app, everything is good except I cannot for the life of me achieve a smooth KeyboardAvoidingView behavior.. My current implementation works but the content at the top of the screen (under the header) flickers and glitches everytime I press the text input area.. It also happens when I close the keybaord.. the functionality is correct but its not smooth or "flawless" I keep experiencing this glitchy behavior from the users avatar and the text input area... I will post my code below so you can see whats going on.. Any help would be greatly appreciated..

• Useful debugging context:

  {
    "expo": "~55.0.0",
    "react-native": "0.83.6",
    "react": "19.2.0",
    "expo-dev-client": "~55.0.28",
    "react-native-keyboard-controller": "1.20.7",
    "react-native-reanimated": "4.2.1",
    "react-native-worklets": "0.7.4",
    "react-native-safe-area-context": "~5.6.2",
    "react-native-gesture-handler": "~2.30.0",
    "expo-image-picker": "~55.0.19",
    "expo-haptics": "~55.0.14"
  }

  Other relevant setup:

  - App is Expo with a custom dev build, not plain Expo Go.
  - Global root wraps app in:

  <KeyboardProvider statusBarTranslucent navigationBarTranslucent>

  - AppNavigator wraps the main app in:

  <SafeAreaView edges={['top']}>

  - CreatePostScreen is mounted as an absolute-fill overlay inside that safe-area content.
  - Current create-post body uses:

  <KeyboardAvoidingView
    behavior="translate-with-padding"
    keyboardVerticalOffset={insets.top}
  />

  - The composer canvas is a ScrollView containing a multiline TextInput.
  - That scroll view has:

  automaticallyAdjustContentInsets={false}
  automaticallyAdjustKeyboardInsets={false}
  contentInsetAdjustmentBehavior="never"
  keyboardDismissMode="interactive"
  keyboardShouldPersistTaps="handled"

  - Header is currently absolutely positioned inside CreatePostScreen, and body space is reserved with paddingTop: HEADER_HEIGHT.

Function is returning:

 return (
    <View style={styles.container}>
      <View style={styles.bodyWrap}>
        <KeyboardAvoidingView
          behavior="translate-with-padding"
          keyboardVerticalOffset={insets.top}
          style={styles.fill}
        >
          <ComposerCanvas
            body={body}
            image={previewImage}
            imageStatus={selectedImage?.status ?? null}
            tags={tags}
            user={user}
            maxBodyLength={MAX_BODY_LENGTH}
            onBodyChange={setBody}
            onRemoveImage={handleRemoveImage}
            onRemoveTag={removeTag}
            onRetryImage={handleRetryImageUpload}
          />

          {isTagPickerOpen ? (
            <TagPickerPanel
              categories={TAG_CATEGORIES}
              customTag={customTag}
              error={tagError}
              recentTags={recentTags}
              selectedTags={tags}
              tagCount={tags.length}
              maxTags={MAX_POST_TAGS}
              onAddTag={addTag}
              onChangeCustomTag={setCustomTag}
              onClose={() => setIsTagPickerOpen(false)}
              onRemoveTag={removeTag}
              onToggleTag={toggleTag}
            />
          ) : (
            <ComposerToolbar
              hasImage={selectedImage !== null}
              tagCount={tags.length}
              maxTags={MAX_POST_TAGS}
              onPickImage={handlePickImage}
              onOpenTagPicker={() => setIsTagPickerOpen(true)}
            />
          )}
        </KeyboardAvoidingView>
      </View>

      <View style={[styles.bottomSpacer, { height: bottomSafeSpace }]} />

      <CreatePostHeader
        bodyLength={body.length}
        canSubmit={canSubmit}
        draftCount={drafts.length}
        isSubmitting={isSubmitting}
        maxLength={MAX_BODY_LENGTH}
        postType={selectedImage ? "photo" : "text"}
        onBack={handleBack}
        onOpenDrafts={() => setIsDraftsOpen(true)}
        onSubmit={handleSubmit}
      />

      {isDraftsOpen ? (
        <DraftsSheet
          drafts={drafts}
          onClose={() => setIsDraftsOpen(false)}
          onDeleteDraft={handleDeleteDraft}
          onLoadDraft={handleLoadDraft}
        />
      ) : null}
    </View>
  );
reddit.com
u/Beneficial-Mind286 — 21 days ago