Files
Reflect/Shared/Models/SharingImageModels.swift
Trey t 4713192d55 Add social media share functionality to Month and Year views
- Add share button to MonthCard and YearCard headers
- Create social media-friendly "Monthly Mood Wrap" and "Year in Review" designs
- Show top mood, days tracked, and mood breakdown with colorful bar charts
- Add ImageOnlyShareSheet to share images without extra text
- Uses user's selected theme colors and icon pack

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 23:16:48 -06:00

75 lines
2.1 KiB
Swift

//
// SharingImageModels.swift
// Feels
//
// Created by Trey Tartt on 2/24/22.
//
import SwiftUI
import LinkPresentation
class StupidAssShareObservableObject: ObservableObject {
@Published var fuckingWrappedShrable: UIImage? = nil
@Published var showFuckingSheet = false
}
class ShareActivityItemSource: NSObject, UIActivityItemSource {
var shareText: String
var shareImage: UIImage
var linkMetaData = LPLinkMetadata()
init(shareText: String, shareImage: UIImage) {
self.shareText = shareText
self.shareImage = shareImage
linkMetaData.title = shareText
super.init()
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return UIImage(named: "AppIcon") as Any
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return nil
}
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
return linkMetaData
}
}
struct ShareSheet: UIViewControllerRepresentable {
let photo: UIImage
func makeUIViewController(context: Context) -> UIActivityViewController {
let text = "ifeel"
let itemSource = ShareActivityItemSource(shareText: text, shareImage: photo)
let activityItems: [Any] = [photo, text, itemSource]
let controller = UIActivityViewController(
activityItems: activityItems,
applicationActivities: nil)
return controller
}
func updateUIViewController(_ vc: UIActivityViewController, context: Context) {
}
}
struct ImageOnlyShareSheet: UIViewControllerRepresentable {
let photo: UIImage
func makeUIViewController(context: Context) -> UIActivityViewController {
let controller = UIActivityViewController(
activityItems: [photo],
applicationActivities: nil)
return controller
}
func updateUIViewController(_ vc: UIActivityViewController, context: Context) {
}
}