diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj
index f2abd73e050524651ab645d287c5c5f8dc6f0b17..d9764904884d9e9e1837ef017f77f8c2af4be973 100644
--- a/MiniScanner.xcodeproj/project.pbxproj
+++ b/MiniScanner.xcodeproj/project.pbxproj
@@ -198,6 +198,8 @@
 		67807F992C49320100D1F168 /* MainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67807F982C49320100D1F168 /* MainViewModel.swift */; };
 		67807F9B2C49325A00D1F168 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67807F9A2C49325A00D1F168 /* MainView.swift */; };
 		67807FA02C4934BD00D1F168 /* View+LayoutChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67807F9F2C4934BD00D1F168 /* View+LayoutChanges.swift */; };
+		678BD70D2C4CF18300833DA5 /* CustomMenuPickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678BD70C2C4CF18300833DA5 /* CustomMenuPickerItem.swift */; };
+		678BD70F2C4CF1A000833DA5 /* CustomMenuPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678BD70E2C4CF1A000833DA5 /* CustomMenuPicker.swift */; };
 		B827E5196CC419E773B843E1 /* Pods_MiniScanner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9A37DC9F9A8E3AF632DFB98 /* Pods_MiniScanner.framework */; };
 		EC0CF1FE254D8BBF00888722 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0CF1FD254D8BBF00888722 /* AppDelegate.swift */; };
 		EC0CF200254D8BBF00888722 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0CF1FF254D8BBF00888722 /* SceneDelegate.swift */; };
@@ -446,6 +448,8 @@
 		67807F982C49320100D1F168 /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = "<group>"; };
 		67807F9A2C49325A00D1F168 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = "<group>"; };
 		67807F9F2C4934BD00D1F168 /* View+LayoutChanges.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+LayoutChanges.swift"; sourceTree = "<group>"; };
+		678BD70C2C4CF18300833DA5 /* CustomMenuPickerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomMenuPickerItem.swift; sourceTree = "<group>"; };
+		678BD70E2C4CF1A000833DA5 /* CustomMenuPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomMenuPicker.swift; sourceTree = "<group>"; };
 		E8AF4FB39674DF589D719DCF /* Pods-MiniScanner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MiniScanner.release.xcconfig"; path = "Target Support Files/Pods-MiniScanner/Pods-MiniScanner.release.xcconfig"; sourceTree = "<group>"; };
 		E9A37DC9F9A8E3AF632DFB98 /* Pods_MiniScanner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MiniScanner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		EC0CF1FA254D8BBF00888722 /* MiniScanner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MiniScanner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1070,6 +1074,7 @@
 		672C46C12C47E98A00497EF0 /* Model */ = {
 			isa = PBXGroup;
 			children = (
+				678BD70C2C4CF18300833DA5 /* CustomMenuPickerItem.swift */,
 				672C46C02C47E98A00497EF0 /* SupportedLanguage.swift */,
 				672C46D22C47EA8F00497EF0 /* SupportedColorScheme.swift */,
 			);
@@ -1115,6 +1120,7 @@
 		67807F972C49313C00D1F168 /* Presentation */ = {
 			isa = PBXGroup;
 			children = (
+				678BD70E2C4CF1A000833DA5 /* CustomMenuPicker.swift */,
 				67807F9A2C49325A00D1F168 /* MainView.swift */,
 				67807F982C49320100D1F168 /* MainViewModel.swift */,
 				67807F942C49306C00D1F168 /* MainCoordinator.swift */,
@@ -1566,6 +1572,7 @@
 				53CD5F5C2C1505A20010424B /* Globals.swift in Sources */,
 				EC8A9B03254DC08800F9AF99 /* NSNotification+Extensions.swift in Sources */,
 				539996492C26E86700671340 /* CDCameraOverlayView.m in Sources */,
+				678BD70D2C4CF18300833DA5 /* CustomMenuPickerItem.swift in Sources */,
 				5359841A2C145E55003EB6ED /* DocumentsTableViewCell.swift in Sources */,
 				EC702522254DF13200BE1958 /* PencilKitViewController.swift in Sources */,
 				5399968F2C27130000671340 /* ConstraintConfig.swift in Sources */,
@@ -1642,6 +1649,7 @@
 				53014F9C2C11A8E80071CE39 /* CGRect+Utils.swift in Sources */,
 				539996842C27130000671340 /* ConstraintAttributes.swift in Sources */,
 				53EDEDA32C183FFF00DB8DF9 /* PagerImageCollectionViewCell.swift in Sources */,
+				678BD70F2C4CF1A000833DA5 /* CustomMenuPicker.swift in Sources */,
 				53014FA12C11A8E80071CE39 /* MultiPageScanSessionViewController.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
diff --git a/MiniScanner/Features/Common/Data/Model/CustomMenuPickerItem.swift b/MiniScanner/Features/Common/Data/Model/CustomMenuPickerItem.swift
new file mode 100644
index 0000000000000000000000000000000000000000..468c520c6b907505fdc06730fd87a35dbc9f7cc9
--- /dev/null
+++ b/MiniScanner/Features/Common/Data/Model/CustomMenuPickerItem.swift
@@ -0,0 +1,14 @@
+//
+//  CustomMenuPickerItem.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 7/18/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+protocol CustomMenuPickerItem: Identifiable, Hashable {
+    
+    var displayedName: String { get }
+}
diff --git a/MiniScanner/Features/Common/Presentation/CustomMenuPicker.swift b/MiniScanner/Features/Common/Presentation/CustomMenuPicker.swift
new file mode 100644
index 0000000000000000000000000000000000000000..cb8c8f944652f0ab7cbd898297a855a5f0c15897
--- /dev/null
+++ b/MiniScanner/Features/Common/Presentation/CustomMenuPicker.swift
@@ -0,0 +1,32 @@
+//
+//  CustomMenuPicker.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 7/18/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import SwiftUI
+
+struct CustomMenuPicker<Item: CustomMenuPickerItem, Label: View>: View {
+    
+    @Binding var selectedItem: Item
+    var items: [Item]
+    
+    @ViewBuilder var label: () -> Label
+    
+    var body: some View {
+        Menu(content: {
+            Picker(selection: $selectedItem, label: EmptyView()) {
+                
+                ForEach(items) { item in
+                    
+                    Text(item.displayedName)
+                        .tag(item)
+                }
+            }
+        }, label: {
+            label()
+        })
+    }
+}